//第一步:创建connection
var connection = factory.CreateConnection();
//第二步:创建一个channel
var channel = connection.CreateModel();
for (int i = 0; i < 100; i++)
{
var msg = Encoding.UTF8.GetBytes(string.Format("{0} :{1}", i, "你好"));
var level = i % 13 == 0 ? "info" : "error"; //方便演示的目的,
//第五步:发布消息
channel.BasicPublish("myexchange", routingKey: level, basicProperties: null, body: msg);
Console.WriteLine(i);
}
var channel = connection.CreateModel();
//第三步:申明交换机【因为rabbitmq已经有了自定义的ampq default exchange】
channel.ExchangeDeclare("myexchange", ExchangeType.Direct, true, false, null);
//第四步:创建一个队列(queue)
channel.QueueDeclare("log_else", true, false, false, null);
var arrr = new string[3] { "debug", "info", "warning" };
//将debug,info,warning 都绑定到“log_else" 队列中。。。
for (int i = 0; i < arrr.Length; i++)
{
channel.QueueBind("log_else", "myexchange", arrr[i], null);
}
EventingBasicConsumer consumer = new EventingBasicConsumer(channel);
consumer.Received += (sender, e) =>
{
var msg = Encoding.UTF8.GetString(e.Body);
Console.WriteLine(msg);
};
channel.BasicConsume("log_else", true, consumer);