C# RabbitMQ 消息队列编程
作者:野牛程序员:2023-11-22 12:20:22C#阅读 2710
C# RabbitMQ 消息队列编程:
使用C#编写RabbitMQ消息队列的代码涉及到RabbitMQ客户端库的使用。在C#中,可以使用RabbitMQ.Client库来与RabbitMQ进行交互。以下是一个简单的示例,展示了如何在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, RabbitMQ!"; var body = Encoding.UTF8.GetBytes(message); // 发送消息到队列 channel.BasicPublish(exchange: "", routingKey: "hello", basicProperties: null, body: body); Console.WriteLine($" [x] Sent {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 {message}"); }; // 启动消费者 channel.BasicConsume(queue: "hello", autoAck: true, consumer: consumer); Console.WriteLine(" Press [enter] to exit."); Console.ReadLine(); } } } }
这是一个简单的例子,使用默认的本地RabbitMQ服务器。确保已经安装了RabbitMQ,并且服务正在运行。可以根据需要修改连接工厂的主机名和队列的名称等参数。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
