namespace ZMQMessage { public class RabbitMQTask { private static string QUEUE_NAME = "q_test_01"; /// <summary> /// 发送信息 /// </summary> /// <param name="QUEUE_NAME"></param> public void run(string QUEUE_NAME) { var factory = new ConnectionFactory();//创建连接工厂并初始连接 factory.HostName = "40.88.34.64"; factory.Port = 5672; factory.VirtualHost = "OrderSendHost"; factory.UserName = "admin"; factory.Password = "admin"; using (var connection = factory.CreateConnection())//创建一个连接 { using (var channel = connection.CreateModel()) //创建一个通道 { channel.QueueDeclare(QUEUE_NAME, false, false, false, null);//创建一个队列 string message = ""; while (message != "exit") { Console.Write("Please enter the message to be sent:"); message = Console.ReadLine(); var body = Encoding.UTF8.GetBytes(message); channel.BasicPublish("", QUEUE_NAME, null, body); //发送消息 Console.WriteLine("set message: {0}", message); } } } //xiaofei(); } /// <summary> /// 消费 /// </summary> public void xiaofei() { var factory = new ConnectionFactory();//创建连接工厂并初始连接 factory.HostName = "40.88.34.64"; factory.Port = 5672; factory.VirtualHost = "OrderSendHost"; factory.UserName = "admin"; factory.Password = "admin"; using (var connection = factory.CreateConnection())//创建一个连接 { using (var channel = connection.CreateModel())//创建一个通道 { channel.QueueDeclare(QUEUE_NAME, false, false, false, null);//创建一个队列 var consumer = new QueueingBasicConsumer(channel);//创建一个消费者 channel.BasicConsume(QUEUE_NAME, true, consumer);//开启消息者与通道、队列关联 Console.WriteLine(" waiting for message."); while (true) { var ea = consumer.Queue.Dequeue();//接收消息并出列 var body = ea.Body;//消息主体 var message = Encoding.UTF8.GetString(body); Console.WriteLine("Received {0}", message); if (message == "exit") { Console.WriteLine("exit!"); break; } } } } } } }
前提RabbitMQ服务器要搭建好,端口要开放,在Nuget管理里添加RabbitMQ.Client