无中心订阅发布

使用组播方式寻址,发布时通过组播发布本地接收订阅的地址,通知各节点订阅。

各节点以一个节点标识区分(guid),节点启动后自动初始化网络接收(使用nng库)。

点对点通信

程序集成了nng通信库,提供了直接通信,当前是tcp为主,如果需要使用其它协议,需要自己研究nng库。

多类型订阅发布

按照进程内,进程间,网络实现多种方式。

  1. 进程内
  2. 进程间
  3. 网络

进程内使用观察者模式,进程间使用内存共享,网络集成组件库。

程序使用

订阅发布

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集成消息通讯库(多协议订阅发布)相关推荐

  1. 微服务中的异步消息通讯

    前言 在上一篇文章中,我们说到了异步消息通讯,下面这篇文章呢,大部分内容是翻译来自于这篇微软的文章,所以其内容还是具有一定的理论指导意义的. 当我们跨多个微服务进行内部通讯的时候,异步消息和事件驱动至 ...

  2. 组合开发一个订阅发布通信库minimsg

    曾经的付出 以前根据自己的喜好和项目,研究过opendds,编译和使用都很复杂的东西,但是它是dds的一个标准. 以后学习Java,所以了解过netty,弄过dotnetty,但是官方都没有管了. 接 ...

  3. react 消息订阅-发布机制(解决兄弟组件通信问题)

    消息订阅-发布机制 工具库: PubSubJS 下载: npm install pubsub-js --save 使用: 1)import PubSub from 'pubsub-js' //引入 2 ...

  4. Redis消息订阅发布

    Redis的发布订阅(pub/sub)是一种 消息通信模式 : 发送者(pub)发送消息,订阅者(sub)接收消息 redis客户端可以订阅任意数量的频道 消息发送者 频道 消息接收者 redis频道 ...

  5. ros 单向通讯 talker,listener 发布订阅模型

    原文链接: ros 单向通讯 talker,listener 发布订阅模型 上一篇: VirtualBox 端口转发(端口映射) 主机和虚拟机相互访问 下一篇: python 串口编程 发布订阅模型 ...

  6. [Java]SpringBoot2整合mqtt服务器EMQ实现消息订阅发布入库(二)

    又到了显摆分享技术的时候了 没有看过上一篇文章的可以先看一下,这篇是在上一篇基础上接着添加功能 SpringBoot2整合mqtt服务器EMQ实现消息订阅发布入库(一) 这篇文章的流程为: 1.Spr ...

  7. Web技术(七):如何使用并实现MQTT 消息订阅-发布模型?

    文章目录 一.什么是发布-订阅消息模型? 二.订阅-发布消息模型有哪些应用? 2.1 应用于IP 物联网络中的消息传递 2.2 应用于操作系统进程间的消息传递 2.3 应用于MESH 自组网中的消息传 ...

  8. 嵌入式消息订阅发布模式软件框架

    文章目录 一.总体框架 二.基于RT-Thread的SoftBus 2.1 SoftBus的由来 2.2 消息订阅者模式 2.3 静态订阅关系与动态订阅关系 2.4 C/S模式 2.5 消息订阅者模式 ...

  9. php redis消息订阅与发布_PHP使用Redis实现订阅发布与批量发送短信

    原标题:PHP使用Redis实现订阅发布与批量发送短信 1 什么是redis订阅 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息.直接点, ...

最新文章

  1. python使用matplotlib可视化线图(line plot)、并自定义设置可视化图像中没有网格线(remove grid line in matplotlib plot result)
  2. C 语言内存区域分配(进程的各个段)详解
  3. 132.非对称加密?数据安全的特征?
  4. C语言程序设计教学探讨,C语言程序设计多媒体教学探讨
  5. C#中 Convert与Parse的区别
  6. MS SQL 能否修改实例名称
  7. python结巴_python结巴(jieba)分词
  8. react如何获取表单数据
  9. 由Dvbbs PHP 0day引发的争论
  10. 需求评审会议上,被逼疯的程序员
  11. JavaScript 继承
  12. CentOS6.x安装zabbix
  13. ActiveMQ使用教程
  14. 【MATLAB】求解含有三角函数的方程
  15. VB6.0视频教程78集,入门视频教程,基础够了(基础篇)
  16. 2017杭州云栖大会100位大咖视频+讲义全分享
  17. Windows主机间批量操作的基本配置
  18. 电子面单云打印方案(PHP示例)
  19. 港口码头应急广播系统解决方案
  20. Failed to start firewalld.service: Unit is masked

热门文章

  1. 设计图像素和开发像素_游戏开发的像素艺术设计
  2. 【笔记】Ubuntu下wacom数位板的安装与使用
  3. VS中的链接重复问题
  4. 如何将一个div盒子水平垂直居中?
  5. 【mysql】--高性能索引策略(359)
  6. 65% 的程序员竟都是自学成才?
  7. 蓝桥杯第八届决赛B组
  8. 发布了半个月的社交软件们,还好吗
  9. 《乐高EV3机器人搭建与编程》一2.5 可循环充电锂电池
  10. 物流快递APP开发基础功能