libminimsgbus集成消息通讯库(多协议订阅发布)

 无中心订阅发布

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

各节点以一个节点标识区分(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: 集成订阅发布和点对点通信


posted @ 2021-10-02 19:10  IT苦行僧  阅读(372)  评论(0编辑  收藏  举报