zoukankan      html  css  js  c++  java
  • 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: 集成订阅发布和点对点通信


  • 相关阅读:
    洛谷
    洛谷
    NOIP 普及组 2014 螺旋矩阵
    NOIP 普及组 2014 珠心算测验
    hdu 1114Piggy-Bank(完全背包)
    hdu 2059龟兔赛跑("01"背包)
    洛谷 P1282 多米诺骨牌("01"背包)
    洛谷 P1140 相似基因(DP)
    洛谷 P1880 [NOI1995] 石子合并(区间DP)
    洛谷 P1280 尼克的任务
  • 原文地址:https://www.cnblogs.com/jinyu20180311/p/15362453.html
Copyright © 2011-2022 走看看