RabbitMq C# .NET 接收广播 消费者 订阅者 简单使用 ~~

工作需要整了点RabbitMq的接受功能。。。

中间出现了点小问题。。。不过解决的。。。(下方链接。。)

https://blog.csdn.net/ljason1993/article/details/81292602 

(这是个坑,可以看看~~~)

其实RabbitMq的使用挺简单。。但是之前不太懂,也没有人说,而且官方的API写的。。。

不过其实人家写的还行吧。。。

官网的实例,我加点解释大家看看就行。。。

using System;
using RabbitMQ.Client;
using RabbitMQ.Client.Events;
using System.Text;

class ReceiveLogs
{
    public static void Main()
    {
          // 声明方法1
          var factory = new ConnectionFactory() {
              HostName = "服务器ip(不带端口的哦,例子 192.168.0.1 )",
              UserName = "用户名",
              Password = "密码",
              Port = 0000 // 端口号 int值哦 };
          // 声明方法2
          var factory = new ConnectionFactory() {
              Uri = "amqp://用户名:密码@服务器IP地址:端口号/"};// 示范"amqp://guest:[email protected]:8848/"
        using(var connection = factory.CreateConnection())
        using(var channel = connection.CreateModel())
        {   
            channel.ExchangeDeclare(exchange: "问后端要", type: "问后端要信息类型");// 这里有个坑,上面我的链接写了

            var queueName = channel.QueueDeclare().QueueName;// 随机名字
            channel.QueueBind(queue: queueName,
                              exchange: "问后端要",
                              routingKey: "问后端要");

            Console.WriteLine(" [*] Waiting for logs.");

            var consumer = new EventingBasicConsumer(channel);
            consumer.Received += (model, ea) =>
            {
                var body = ea.Body;
                var message = Encoding.UTF8.GetString(body);
                Console.WriteLine(" [x] {0}", message);
            };
            channel.BasicConsume(queue: queueName,
                                 autoAck: true,// 这里有可能会报错根据dll版本不一样吧,我的是报错了 我改成 noAck 就好
                                 consumer: consumer);

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

至于dll 在我的资源里面下载吧

https://download.csdn.net/download/ljason1993/10573364

猜你喜欢

转载自blog.csdn.net/ljason1993/article/details/81292993