1. 程式人生 > 其它 >libminimsgbus整合訊息通訊庫(多協議訂閱釋出)

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: 整合訂閱釋出和點對點通訊