佳佳的博客
Menu
首页
【RabbitMQ】.NET中使用RabbitMQ
Posted by
佳佳
on 2016-02-19
IT
RabbitMQ
1. 新建一个发送消息的控制台工程`FirstRabbitMQSend` ```cs using RabbitMQ.Client; using System; using System.Text; namespace FirstRabbitMQSend { class Program { // 交换器名 const string EXCHANGE_NAME = "hello.exchange"; // 队列名 const string QUEUE_NAME = "hello.queue"; static void Main(string args) { // 定义连接工厂 var factory = new ConnectionFactory() { HostName ="localhost", UserName = "liujj", Password = "AAA@111", }; // 连接到RabbitMQ using (var connection = factory.CreateConnection()) { // 获取信道 using (var channel = connection.CreateModel()) { // 声明交换器 channel.ExchangeDeclare( exchange: EXCHANGE_NAME, type: "direct", durable: true); // 声明队列 channel.QueueDeclare( queue: QUEUE_NAME, durable: true, exclusive: false, autoDelete: false, arguments: null); // 绑定交换器到队列 channel.QueueBind( queue: QUEUE_NAME, exchange: EXCHANGE_NAME, routingKey: QUEUE_NAME); // 创建消息 string message = "Hello, World!"; var body = Encoding.UTF8.GetBytes(message); // 发布消息 channel.BasicPublish( exchange: EXCHANGE_NAME, routingKey: QUEUE_NAME, basicProperties: null, body: body); Console.WriteLine("set {0}", message); } } } } } ``` 2. 新建一个接收的控制台工程`FirstRabbitMQReceive` ```cs using RabbitMQ.Client; using RabbitMQ.Client.Events; using System; using System.Text; namespace FirstRabbitMQReceive { class Program { // 交换器名 const string EXCHANGE_NAME = "hello.exchange"; // 队列名 const string QUEUE_NAME = "hello.queue"; static void Main(string args) { // 定义连接工厂 var factory = new ConnectionFactory() { HostName = "localhost", UserName = "liujj", Password = "AAA@111", }; // 连接到RabbitMQ using (var connection = factory.CreateConnection()) { // 获得信道 using (var channel = connection.CreateModel()) { // 声明交换器 channel.ExchangeDeclare( exchange: EXCHANGE_NAME, type: "direct", durable: true); // 声明队列 channel.QueueDeclare( queue: QUEUE_NAME, durable: true, exclusive: false, autoDelete: false, arguments: null); // 绑定交换器到队列 channel.QueueBind( queue: QUEUE_NAME, exchange: EXCHANGE_NAME, routingKey: QUEUE_NAME); // 声明消费者 var consumer = new QueueingBasicConsumer(channel); // 订阅消费者 channel.BasicConsume( queue: QUEUE_NAME, noAck: true, consumer: consumer); Console.WriteLine("waiting for message."); while (true) { // 消费消息 var ea = consumer.Queue.Dequeue() as BasicDeliverEventArgs; var body = ea.Body; var message = Encoding.UTF8.GetString(body); Console.WriteLine("Received {0}", message); } } } } } } ``` 参考: 1. [在 Windows 上安装Rabbit MQ 指南](http://www.cnblogs.com/shanyou/p/4067250.html) 2. [.NET 环境中使用RabbitMQ](http://www.cnblogs.com/yangecnu/p/4227535.html)
版权声明:原创文章,未经允许不得转载。
https://www.liujiajia.me/2016/2/19/【rabbitmq】-net中使用rabbitmq
“Buy me a nongfu spring”
« 前端之测试题(不断更新)
【RabbitMQ】windows上安装RabbitMQ »
昵称
*
电子邮箱
*
回复内容
*
(回复审核后才会显示)
提交
目录
AUTHOR
刘佳佳
江苏 - 苏州
软件工程师
梦嘉集团