阅读量:0
要使用C# RabbitMQ进行消息的发送和接收,首先需要安装RabbitMQ的客户端库,可以使用NuGet包管理器来安装。然后,您需要编写发送和接收消息的代码。
以下是一个简单的示例代码,演示如何在C#中使用RabbitMQ发送和接收消息:
- 发送消息:
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(); } }
- 接收消息:
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”的队列中,接收端从该队列中接收消息并打印到控制台。您可以根据需要修改代码来满足您的需求。