NetMq学习--发布订阅(一)
基于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学习--发布订阅(一)的更多相关文章
- Redis学习-发布/订阅
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息.Redis 客户端可以订阅任意数量的频道. 常用命令 命令 描述 复杂度 返回 PSUBS ...
- 【Redis数据库】命令学习笔记——发布订阅、事务、脚本、连接等命令汇总
本篇基于redis 4.0.11版本,学习发布订阅.事务.脚本.连接的相关命令. Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. 序号 ...
- NetMQ(三): 发布订阅模式 Publisher-Subscriber
ZeroMQ系列 之NetMQ 一:zeromq简介 二:NetMQ 请求响应模式 Request-Reply 三:NetMQ 发布订阅模式 Publisher-Subscriber 四:NetMQ ...
- NetMQ发布订阅C#示例
NetMQ (ZeroMQ to .Net),ØMQ号称史上最快中间件.它对socket通信进行了封装,使得我们不需要写socket函数调用就能完成复杂的网络通信.和一般意义上的消息队列产品不同的是, ...
- RabbitMQ学习总结 第四篇:发布/订阅 Publish/Subscribe
目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...
- NetMQ 发布订阅模式 Publisher-Subscriber
第一部分引用于:点击打开 1:简单介绍 PUB-SUB模式一般处理的都不是系统的关键数据.发布者不关注订阅者是否收到发布的消息,订阅者也不知道自己是否收到了发布者发出的所有消息.你也不知道订阅者何时开 ...
- MQTT的学习之Mosquitto发布-订阅(2)
在<MQTT的学习之Mosquitto安装&使用(1)>一文末尾,我已经模拟了发布-订阅模式,只是那时在服务器直接模拟的,并不是java代码模拟的.下面贴出Java代码 1.首先引 ...
- Redis学习笔记8--Redis发布/订阅
发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布者和消息订阅者之间的耦合,这点和设计模式中的观察者模式比较相似.pub /sub不仅仅解决发布者和订阅者直接代码级别耦合也解决两者 ...
- javascript设计模式学习之八_发布订阅(观察者)模式
一.发布订阅模式定义 jQuery中的callbacks,defered,promise本质上就是发布订阅模式的实现.ES6的promise内部实现未开源,不了解具体机制 发布订阅模式又叫做观察者模式 ...
随机推荐
- 有向图强连通分量的Tarjan算法
有向图强连通分量的Tarjan算法 [有向图强连通分量] 在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected).如果有向图G的每两个顶点都强连通,称G ...
- JAVA第4次作业
package fuzhi; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOExc ...
- NopCommerce 框架系列(一)
今天,终于抽出时间来写写博文,也希望自己能养成写博文的好习惯,大神勿喷. 我从NopCommerce官网上下载了源码,以便自己学习研究,如有需要下载源码的朋友,请点击链接: http://www.no ...
- Matlab(2) -- Find()函数
转自:http://www.matlabsky.com/thread-4228-1-1.html find函数:用于查询非零元素的行和列标志 语法: ind = find(X) ind = find( ...
- Oracle直方图的详细解析
yuanwen:http://blog.csdn.net/javacoffe/article/details/5578206 Oracle直方图解析 一. 何谓直方图: 直方图是一种统计学上的工 ...
- 数据库优化系列——SQL性能优化十条建议
1.查询的模糊匹配 尽量避免在一个复杂查询里面使用 LIKE '%parm1%'—— 红色标识位置的百分号会导致相关列的索引无法使用,最好不要用. 解决办法: 其实只需要对该脚本略做改进,查询速度便 ...
- spring mvc 工作流程
Spring Web MVC 处理Http请求的大致过程:一旦Http请求到来,DispatcherSevlet将负责将请求分发.DispatcherServlet可以认为是Spring提供的前端控制 ...
- Windows系统下部署安装一个/多个Tomcat8
首先从http://tomcat.apache.org/上下载Tomcat8.0压缩版的,解压到指定路径后即可. 第一:在Windows系统中安装部署单个Tomcat 对于这种情况, ...
- C# 网络与Cmd命令
网络命令行: 1 - ping 2 - ipconfig 本机网络配置情况 3 - net 4 - arp 网络网卡物理/ip地址对应用 5 - tracert 列举数据报到达目标地所经过的网关 6 ...
- 《Photon》
搭建客户端: using UnityEngine;using System.Collections;using ExitGames.Client.Photon; public class GameCl ...