无中心订阅发布
使用组播方式寻址,发布时通过组播发布本地接收订阅的地址,通知各节点订阅。
各节点以一个节点标识区分(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编写。