/// <summary>
/// 连接配置
/// </summary>
private static readonly ConnectionFactory rabbitMqFactory = new ConnectionFactory()
{
HostName = "172.18.0.88",
UserName = "admin",
Password = "admin123",
Port = 5673,
VirtualHost = "order"
};
//队列名称
const string exchange = "yujiajun";
const string queueName = "auth";
/// <summary>
/// 发送
/// </summary>
public static void SendMsg()
{
using (IConnection conn = rabbitMqFactory.CreateConnection())
{
using (IModel channel = conn.CreateModel())
{
//在MQ上定义一个持久化队列,如果名称相同不会重复创建
channel.QueueDeclare(queueName, true, false, false, null);
for (int i = 0; i < 100; i++)
{
string message = string.Format("Message_{0}", i);
byte[] buffer = Encoding.UTF8.GetBytes(message);
var properties = channel.CreateBasicProperties();
properties.Persistent = true;
channel.BasicPublish("", queueName, properties, buffer);
Console.WriteLine("消息发送成功:" + message);
}
}
}
}
/// <summary>
/// 接收
/// </summary>
public static void ReadMsg1()
{
IConnection conn = rabbitMqFactory.CreateConnection();
IModel channel = conn.CreateModel();
channel.BasicQos(0, 1, false);
//在MQ上定义一个持久化队列,如果名称相同不会重复创建
channel.QueueDeclare(queueName, true, false, false, null);
//在队列上定义一个消费者
EventingBasicConsumer consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, body) =>
{
string msg = Encoding.UTF8.GetString(body.Body);
Console.WriteLine(msg);
channel.BasicAck(body.DeliveryTag, false);
};
channel.BasicConsume(queueName, false, consumer);
}