工作需要整了点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:guest@192.168.0.1: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 在我的资源里面下载吧