rabbitmq c#
时间: 2023-09-30 18:06:22 浏览: 98
RabbitMQ 是一个消息队列中间件,C# 是一种编程语言。在 C# 中使用 RabbitMQ,需要使用 RabbitMQ 的 C# 客户端库。RabbitMQ 的 C# 客户端库是 AMQP 的一个实现,可以通过 NuGet 包管理器或者手动下载安装。下面是一个使用 RabbitMQ C# 客户端库发送和接收消息的例子:
发送消息:
```csharp
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);
}
```
接收消息:
```csharp
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();
}
```
这里的例子中,程序通过 RabbitMQ 发送和接收消息。在发送消息时,程序先创建了一个连接和一个通道,然后声明一个队列,发送一个消息,最后关闭连接和通道。在接收消息时,程序也先创建了一个连接和一个通道,然后声明一个队列,接收一个消息,最后等待用户按下 Enter 键退出程序。
阅读全文