代码拉取完成,页面将自动刷新
[TOC]
兼容主流消息队列服务的客户端SDK,目前支持RabbitMQ,未来支持Redis、AliyunONS、MQTT等。
Install-Package Lails.MQClient
消息以 “Topic” 的方式进行发布和订阅,Topic必须是一串由关键字用句号(.) 隔开组成的字符,如"gps.alarm","gps.alarm.key"等。
Topic支持使用通配符,“#”表示0个或若干个关键字,“*”表示一个关键字,如:
客户端名称,当多个订阅者使用同一名称时,表示以负载均衡的方式群集订阅;使用不同名称订阅时,表示各自订阅一份完整数据的广播订阅。
string consumername1 = "consumer1", consumername2 = "consumer1"; //独立订阅
//string consumername1 = "consumer", consumername2 = "consumer"; //共同订阅
MQClient consumer1 = new RabbitMQClient("mq.lails.cc", "root", "Lxs@rabbitmq", consumername1);
MQClient consumer2 = new RabbitMQClient("mq.lails.cc", "root", "Lxs@rabbitmq", consumername2);
consumer1.Connect();
consumer1.Subscribe("msg", data =>
{
Console.WriteLine($"订阅1接收消息:{Encoding.UTF8.GetString(data)}");
consumer1.UnSubscribe("msg");
Console.WriteLine("退订consumer1");
return true; //ACK
});
consumer2.Connect();
consumer2.Subscribe("msg", data =>
{
Console.WriteLine($"订阅2接收消息:{Encoding.UTF8.GetString(data)}");
consumer1.UnSubscribe("msg");
Console.WriteLine("退订consumer1");
return true; //ACK
});
MQClient publisher = new RabbitMQClient("mq.lails.cc", "root", "Lxs@rabbitmq", "publisher1");
publisher.Connect();
string message = "Rabbitmq Message";
byte[] body1 = Encoding.UTF8.GetBytes(message + "_01");
byte[] body2 = Encoding.UTF8.GetBytes(message + "_02");
publisher.Publish("msg", body1);
publisher.Publish("msg", body2);
Console.WriteLine($"发送消息:{message}");
Console.Read();
(string topic, Func<MessageData, bool> subscribe, MessageArgs arg = null)
# MessageData
public class MessageData
{
public byte[] Data { get; set; }
public string Topic { get; set; }
}
支持返回接收消息的主题
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。