Nuget安装RabbitMQ.Clien
//服务端
using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System.Text;
ConnectionFactory factory = new ConnectionFactory
{
HostName = "localhost"
};
using IConnection connection = factory.CreateConnection();
using IModel channel = connection.CreateModel();
channel.QueueDeclare(
queue: "myqueue",
durable: false,
exclusive: false,
autoDelete: false,
arguments: null
);
_= Task.Run(() =>
{
int i = 0;
string message = string.Empty;
while (i < 1000)
{
message = $"测试{i}";
channel.BasicPublish(
exchange: string.Empty,
routingKey: "myqueue",
basicProperties: null,
body: Encoding.UTF8.GetBytes(message)
);
Console.WriteLine($" [Server] Send {message}");
i++;
Thread.Sleep(1000);
}
});
Console.ReadLine();
//客户端
using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System.Text;
ConnectionFactory factory = new ConnectionFactory
{
HostName = "localhost"
};
using IConnection connection = factory.CreateConnection();
using IModel channel = connection.CreateModel();
// 定义消费者
var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
var message = Encoding.UTF8.GetString(ea.Body.Span);
Console.WriteLine($" [Client] Received {message}");
};
// 开始消费
channel.BasicConsume(queue: "myqueue",
autoAck: true,
consumer: consumer);
Console.ReadLine();