如何使用C# RabbitMQ进行消息的发送和接收

avatar
作者
猴君
阅读量:0

要使用C# RabbitMQ进行消息的发送和接收,首先需要安装RabbitMQ的客户端库,可以使用NuGet包管理器来安装。然后,您需要编写发送和接收消息的代码。

以下是一个简单的示例代码,演示如何在C#中使用RabbitMQ发送和接收消息:

  1. 发送消息:
using RabbitMQ.Client; using System; using System.Text;  class Program {     static void Main()     {         var factory = new ConnectionFactory() { HostName = "localhost" };         using (var connection = factory.CreateConnection())         using (var channel = connection.CreateModel())         {             channel.QueueDeclare(queue: "hello",                                  durable: false,                                  exclusive: false,                                  autoDelete: false,                                  arguments: null);              string message = "Hello World!";             var body = Encoding.UTF8.GetBytes(message);              channel.BasicPublish(exchange: "",                                  routingKey: "hello",                                  basicProperties: null,                                  body: body);             Console.WriteLine(" [x] Sent {0}", message);         }          Console.WriteLine(" Press [enter] to exit.");         Console.ReadLine();     } } 
  1. 接收消息:
using RabbitMQ.Client; using RabbitMQ.Client.Events; using System; using System.Text;  class Program {     static void Main()     {         var factory = new ConnectionFactory() { HostName = "localhost" };         using (var connection = factory.CreateConnection())         using (var channel = connection.CreateModel())         {             channel.QueueDeclare(queue: "hello",                                  durable: false,                                  exclusive: false,                                  autoDelete: false,                                  arguments: null);              var consumer = new EventingBasicConsumer(channel);             consumer.Received += (model, ea) =>             {                 var body = ea.Body.ToArray();                 var message = Encoding.UTF8.GetString(body);                 Console.WriteLine(" [x] Received {0}", message);             };              channel.BasicConsume(queue: "hello",                                  autoAck: true,                                  consumer: consumer);              Console.WriteLine(" Press [enter] to exit.");             Console.ReadLine();         }     } } 

在这个示例中,发送端将消息发送到名为“hello”的队列中,接收端从该队列中接收消息并打印到控制台。您可以根据需要修改代码来满足您的需求。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!