C# RabbitMQ 消息队列编程
作者:野牛程序员:2023-11-22 12:20:22C#阅读 2932
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

