/// <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())
{
channel.ExchangeDeclare(exchange: exchange, type: "fanout");//fanout 模式
int i = 0;
while (true)
{
Thread.Sleep(1000);
i++;
var message = "yujiajun" + i.ToString();
var body = Encoding.UTF8.GetBytes(message);
channel.BasicPublish(exchange: exchange,
routingKey: "",
basicProperties: null,
body: body);
Console.WriteLine(" [x] Sent {0}", message);
}
}
}
}
/// <summary>
/// 订阅
/// </summary>
public static void ReadMsg()
{
rabbitMqFactory.AutomaticRecoveryEnabled = true;//自动重连
IConnection connection = rabbitMqFactory.CreateConnection();
IModel channel = connection.CreateModel();
channel.ExchangeDeclare(exchange, "fanout");//fanout模式
string _queueName = channel.QueueDeclare().QueueName;
channel.QueueBind(_queueName, exchange, "");
var consumer = new EventingBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
var body = ea.Body;
var message = Encoding.UTF8.GetString(body);
if (!string.IsNullOrWhiteSpace(message))
{
Console.WriteLine(message);
}
};
channel.BasicConsume(_queueName, true, consumer);
Console.ReadLine();
}