首页 > 代码库 > MQ入门示例

MQ入门示例

RabbitMQ使用

参考链接地址:http://www.rabbitmq.com/tutorials/tutorial-one-dotnet.html

建立两个控制台程序,一个用于发送,一个用于接收,服务端用的是别人搭好的环境,暂时不管

通过NuGet获取需要引用的库输入RabbitMQ搜索即可,using RabbitMQ.Client;

发送端:

static void Main(string[] args)
        {
            var factory = new ConnectionFactory() { HostName = "XXX.33.55.XXX", Port = XXXX, UserName = "XXX", Password = "XXX" };
            using (var connection = factory.CreateConnection())
            using (var channel = connection.CreateModel())
            {
                channel.QueueDeclare(queue: "hello",
                                     durable: false,
                                     exclusive: false,
                                     autoDelete: false,
                                     arguments: null);

                string message = "Hello World!";
                var body = Encoding.UTF8.GetBytes(message);

                channel.BasicPublish(exchange: "",
                                     routingKey: "hello",
                                     basicProperties: null,
                                     body: body);
                Console.WriteLine(" [x] Sent {0}", message);
            }

            Console.WriteLine(" Press [enter] to exit.");
            Console.ReadLine();
        }

接收端:

static void Main(string[] args)
        {
            var factory = new ConnectionFactory() { HostName = "XXX.33.55.XXX", Port = XXXX, UserName = "XXX", Password = "XXX" };
            using (var connection = factory.CreateConnection())
            using (var channel = connection.CreateModel())
            {
                channel.QueueDeclare(queue: "hello",
                                     durable: false,
                                     exclusive: false,
                                     autoDelete: false,
                                     arguments: null);

                var consumer = new EventingBasicConsumer(channel);
                consumer.Received += (model, ea) =>
                {
                    var body = ea.Body;
                    var message = Encoding.UTF8.GetString(body);
                    Console.WriteLine(" [x] Received {0}", message);
                };
                channel.BasicConsume(queue: "hello",
                                     noAck: true,
                                     consumer: consumer);

                Console.WriteLine(" Press [enter] to exit.");
                Console.ReadLine();
            }
        }

 

MQ入门示例