基于NeqMq 4.0.0-rc5版本

发布端:
using (var publisher = new PublisherSocket())
{
publisher.Bind("tcp://*:5556");
var rng = new Random(); while (true)
{
Stopwatch sw = new Stopwatch();
sw.Start(); Console.WriteLine();
Console.WriteLine();
var list = GetList<Messages>(sql); var wards = list.GroupBy(s => s.所属病区).Select(s => s.Key).ToList(); foreach (var item in wards)
{
publisher.SendMoreFrame(item);//发送信封标识,用于消息过滤
var msg = string.Join(";", list.FindAll(s => s.所属病区 == item).Select(s => s.Message));
publisher.SendFrame(msg);
//Console.WriteLine($"{item}");
}
//int zipcode = rng.Next(0, 99999);
//int temperature = rng.Next(-80, 135);
//int relhumidity = rng.Next(0, 90);
//Console.WriteLine($"{zipcode} {temperature} {relhumidity}");
//publisher.SendMoreFrame("AAA");//发送信封标识,用于消息过滤
//publisher.SendFrame($"{zipcode} {temperature} {relhumidity}"); sw.Stop();
Console.WriteLine("用时:" + sw.ElapsedMilliseconds);
Thread.Sleep();
} }
订阅端:
using (var subscriber = new SubscriberSocket())
{
subscriber.Connect("tcp://172.16.131.222:5556");
//subscriber.Subscribe(zipToSubscribeTo.ToString(CultureInfo.InvariantCulture));
//订阅多个信封 执行多次Subscribe即可
//订阅全部消息 SubscribeToAnyTopic();方法 或 Subscribe("")内参数传空
subscriber.Subscribe(wards[r.Next(, wards.Count - )]);//订阅消息,根据消息信封过滤消息
//subscriber.Subscribe("11384");
//subscriber.SubscribeToAnyTopic();
subscriber.Subscribe(wards[r.Next(, wards.Count - )]);
subscriber.Subscribe(wards[r.Next(, wards.Count - )]); while (true)
{
//subscriber.SkipFrame();//跳过消息信封,只接收消息内容
string results = subscriber.ReceiveFrameString();
Console.WriteLine(results);
}
}

NetMq学习--发布订阅(一)的更多相关文章

  1. Redis学习-发布/订阅

    Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息.Redis 客户端可以订阅任意数量的频道. 常用命令 命令 描述 复杂度 返回 PSUBS ...

  2. 【Redis数据库】命令学习笔记——发布订阅、事务、脚本、连接等命令汇总

    本篇基于redis 4.0.11版本,学习发布订阅.事务.脚本.连接的相关命令. Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. 序号 ...

  3. NetMQ(三): 发布订阅模式 Publisher-Subscriber

    ZeroMQ系列 之NetMQ 一:zeromq简介 二:NetMQ 请求响应模式 Request-Reply 三:NetMQ 发布订阅模式 Publisher-Subscriber 四:NetMQ ...

  4. NetMQ发布订阅C#示例

    NetMQ (ZeroMQ to .Net),ØMQ号称史上最快中间件.它对socket通信进行了封装,使得我们不需要写socket函数调用就能完成复杂的网络通信.和一般意义上的消息队列产品不同的是, ...

  5. RabbitMQ学习总结 第四篇:发布/订阅 Publish/Subscribe

    目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...

  6. NetMQ 发布订阅模式 Publisher-Subscriber

    第一部分引用于:点击打开 1:简单介绍 PUB-SUB模式一般处理的都不是系统的关键数据.发布者不关注订阅者是否收到发布的消息,订阅者也不知道自己是否收到了发布者发出的所有消息.你也不知道订阅者何时开 ...

  7. MQTT的学习之Mosquitto发布-订阅(2)

    在<MQTT的学习之Mosquitto安装&使用(1)>一文末尾,我已经模拟了发布-订阅模式,只是那时在服务器直接模拟的,并不是java代码模拟的.下面贴出Java代码 1.首先引 ...

  8. Redis学习笔记8--Redis发布/订阅

    发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布者和消息订阅者之间的耦合,这点和设计模式中的观察者模式比较相似.pub /sub不仅仅解决发布者和订阅者直接代码级别耦合也解决两者 ...

  9. javascript设计模式学习之八_发布订阅(观察者)模式

    一.发布订阅模式定义 jQuery中的callbacks,defered,promise本质上就是发布订阅模式的实现.ES6的promise内部实现未开源,不了解具体机制 发布订阅模式又叫做观察者模式 ...

随机推荐

  1. [Note] changing building platform from vs 2013 to vs community 2015

    The error turned out as "undefined linkage"(The same as you haven't use some function that ...

  2. Android NDK, No rule to make target

    这种问题一般是android.mk里面没有找到对应的源文件 http://stackoverflow.com/questions/11570167/android-ndk-no-rule-to-mak ...

  3. ASCII、Unicode、GBK和UTF-8字符编码的区别联系

    转自http://dengo.org/archives/901 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状态是好的,于是他们把这称 ...

  4. 清空stringbuilder

    大家知道对于字符串频繁拼接是使用stringbuilder.Append方法比使用string+=方法效率高很多,但有时需要清空stringbuilder时却不知道怎么清空,因为它没有clear或em ...

  5. DOM查找元素

    1. 查找元素5种: 1. 按id查找1个元素对象: var elem=document.getElementById("id值"); 何时使用:1. 元素必须有id 2. 精确查 ...

  6. 8421BCD码转换为十进制

    这个转换和随意的认知是不同的,要了解BCD码和二进制码的区别 #define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10) ...

  7. Ubuntu上安装Minecraft服务器

    Minecraft由于其独特的魅力吸引了很多玩家.不过游戏的乐趣只有在和朋友一起玩的时候才最有意思,所以很早以前我就想建设自己的服务器.但由于专业知识欠缺,没有实现. 最近接触了Linux服务器,所以 ...

  8. html input的file文件输入框onchange事件触发一次失效解决方法

    最近在做一个图片上传的功能,出现提交一次后,file输入框的change事件无法再次触发的bug,就是说提交一次后必须刷新才能再次提交,这就坑了~ 于是想办法解决它~ 在网上找了一些资料,找到这几种方 ...

  9. 如何在win上搭建SVN服务器

    本博文转自:http://www.cnblogs.com/armyfai/p/3985660.html SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本, ...

  10. Slide-卡盘效果

    <div style="width:950px;height:705px;"> <div class="J_TWidget" data-wid ...