C#调用RabbitMQ实现消息队列https://www.cnblogs.com/mq0036/p/11726733.html
Windows 下安装RabbitMQ服务器及基本配置 HE demo
https://www.cnblogs.com/vaiyanzi/p/9531607.html
C#项目添加 RabbitMQ.Client 参考:https://www.nuget.org/packages/RabbitMQ.Client/5.2.0
- 打开VS程序包管理控制台
- 输入以下command
Install-Package RabbitMQ.Client -Version 5.2.0安装会有问题
改用 Install-Package RabbitMQ.Client -Version 5.1.0 安装ok
- Send 端代码:
using System;
using System.Text;
using RabbitMQ.Client;
namespace Q.Demo.Send
{
class Program
{
static void Main(string[] args)
{
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);
while (true)
{
var input = Console.ReadLine();
string message = input;
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();
}
}
}
2.Receive端代码:
using System;
using System.Text;
using RabbitMQ.Client;
using RabbitMQ.Client.Events;
namespace Q.Demo.Receive
{
class Program
{
static void Main(string[] args)
{
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;
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();
}
}
}
}