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

   2024-10-01 4330
核心提示:要使用C# RabbitMQ进行消息的发送和接收,首先需要安装RabbitMQ的客户端库,可以使用NuGet包管理器来安装。然后,您需要编写发送

要使用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”的队列中,接收端从该队列中接收消息并打印到控制台。您可以根据需要修改代码来满足您的需求。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号