libminimsgbus集成消息通讯库(多协议订阅发布)
无中心订阅发布
使用组播方式寻址,发布时通过组播发布本地接收订阅的地址,通知各节点订阅。
各节点以一个节点标识区分(guid),节点启动后自动初始化网络接收(使用nng库)。
点对点通信
程序集成了nng通信库,提供了直接通信,当前是tcp为主,如果需要使用其它协议,需要自己研究nng库。
多类型订阅发布
按照进程内,进程间,网络实现多种方式。
- 进程内
- 进程间
- 网络
进程内使用观察者模式,进程间使用内存共享,网络集成组件库。
程序使用
订阅发布
BusFactory::Create(BusType::Inpoc);
BusFactory::Create(BusType::Ipc);
BusFactory::Create(BusType::tcp);
封装了对象生成,也可以自行查阅直接使用对象。
网络通信需要设置本地节点地址。
MsgLocalNode::LocalAddress = "127.0.0.1";
MsgLocalNode::LocalPort = 5567;
默认地址为*,程序自动获取可用ip,端口默认:5556。
点对点通信
PtpFactory::Create();
创建对象,设置其中的地址和端口,即可使用。
依赖项
1.程序集成了zmq,ipc,nng三个通信组件
2.依赖放在deloy文件夹中,包括头文件和lib
3.订阅发布tcp模式使用zmq组播作为寻址,使用nng作为通信组件。
程序说明
程序按照c++11标准编写,支持Windows和Linux。
其中获取本机地址和端口使用了系统的api,其余全部是c++11编写。
项目地址:GitHub - jinyuttt/libminimsgbus: 集成订阅发布和点对点通信
libminimsgbus集成消息通讯库(多协议订阅发布)相关推荐
- 微服务中的异步消息通讯
前言 在上一篇文章中,我们说到了异步消息通讯,下面这篇文章呢,大部分内容是翻译来自于这篇微软的文章,所以其内容还是具有一定的理论指导意义的. 当我们跨多个微服务进行内部通讯的时候,异步消息和事件驱动至 ...
- 组合开发一个订阅发布通信库minimsg
曾经的付出 以前根据自己的喜好和项目,研究过opendds,编译和使用都很复杂的东西,但是它是dds的一个标准. 以后学习Java,所以了解过netty,弄过dotnetty,但是官方都没有管了. 接 ...
- react 消息订阅-发布机制(解决兄弟组件通信问题)
消息订阅-发布机制 工具库: PubSubJS 下载: npm install pubsub-js --save 使用: 1)import PubSub from 'pubsub-js' //引入 2 ...
- Redis消息订阅发布
Redis的发布订阅(pub/sub)是一种 消息通信模式 : 发送者(pub)发送消息,订阅者(sub)接收消息 redis客户端可以订阅任意数量的频道 消息发送者 频道 消息接收者 redis频道 ...
- ros 单向通讯 talker,listener 发布订阅模型
原文链接: ros 单向通讯 talker,listener 发布订阅模型 上一篇: VirtualBox 端口转发(端口映射) 主机和虚拟机相互访问 下一篇: python 串口编程 发布订阅模型 ...
- [Java]SpringBoot2整合mqtt服务器EMQ实现消息订阅发布入库(二)
又到了显摆分享技术的时候了 没有看过上一篇文章的可以先看一下,这篇是在上一篇基础上接着添加功能 SpringBoot2整合mqtt服务器EMQ实现消息订阅发布入库(一) 这篇文章的流程为: 1.Spr ...
- Web技术(七):如何使用并实现MQTT 消息订阅-发布模型?
文章目录 一.什么是发布-订阅消息模型? 二.订阅-发布消息模型有哪些应用? 2.1 应用于IP 物联网络中的消息传递 2.2 应用于操作系统进程间的消息传递 2.3 应用于MESH 自组网中的消息传 ...
- 嵌入式消息订阅发布模式软件框架
文章目录 一.总体框架 二.基于RT-Thread的SoftBus 2.1 SoftBus的由来 2.2 消息订阅者模式 2.3 静态订阅关系与动态订阅关系 2.4 C/S模式 2.5 消息订阅者模式 ...
- php redis消息订阅与发布_PHP使用Redis实现订阅发布与批量发送短信
原标题:PHP使用Redis实现订阅发布与批量发送短信 1 什么是redis订阅 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息.直接点, ...
最新文章
- python使用matplotlib可视化线图(line plot)、并自定义设置可视化图像中没有网格线(remove grid line in matplotlib plot result)
- C 语言内存区域分配(进程的各个段)详解
- 132.非对称加密?数据安全的特征?
- C语言程序设计教学探讨,C语言程序设计多媒体教学探讨
- C#中 Convert与Parse的区别
- MS SQL 能否修改实例名称
- python结巴_python结巴(jieba)分词
- react如何获取表单数据
- 由Dvbbs PHP 0day引发的争论
- 需求评审会议上,被逼疯的程序员
- JavaScript 继承
- CentOS6.x安装zabbix
- ActiveMQ使用教程
- 【MATLAB】求解含有三角函数的方程
- VB6.0视频教程78集,入门视频教程,基础够了(基础篇)
- 2017杭州云栖大会100位大咖视频+讲义全分享
- Windows主机间批量操作的基本配置
- 电子面单云打印方案(PHP示例)
- 港口码头应急广播系统解决方案
- Failed to start firewalld.service: Unit is masked