最近在構建一個中間層的通信架構,本來想用dbus,在實驗過程中發現dbus對於國產系統支持版本比較低,安裝比較麻煩,今天無意中看中了nanomsg,盡管沒有dbus那么強悍的生態,但基本能滿足需求。
nanomsg是一個輕量級的消息通信組件,是zeromq的作者之一用C語言去重寫的通信框架,其無需進一步依賴,可在多種操作系統運行。介紹就不多說了,可直接去官網查詢,該官網是我目前見過感覺最簡潔大方的網站。
更多內容可關注公眾號

官網地址:https://nanomsg.org/

源碼地址:
https://github.com/nanomsg/nanomsg/releases
- 安裝(主要參考源碼里的README文件)
1,下載最新源碼release1.1.5版本,解壓源碼,進入源碼目錄

2,nanomsg使用cmake編譯安裝,安裝cmake。

3,創建build文件夾用於存放cmake生成的makefile。進入build,camke編譯,指定安裝目錄。

4,cmake --build .


5,ctest .


6,cmake --build . --target install

7,sudo ldconfig
![]()
8,安裝完成,test文件夾為我創建,用於存放下面的測試用例。

- 測試
官網有很多測試的例子,主要測試了nanomsg的幾種模式。
我們用管道測試。此模式對於解決生產者/消費者問題(包括負載平衡)很有用。消息從推送側流向推送側。如果連接了多個對等方,則該模式將嘗試公平分配。
用例源碼地址:
https://nanomsg.org/gettingstarted/pipeline.html
將源碼保存到本地文件,存儲為pipeline.c
編譯:gcc pipeline.c -lnanomsg -o pipeline -I ../include/ -L ../lib/

啟動接收管道0

啟動管道1發送Hello World!
啟動管道1發送Goodbye

最后不要忘記殺死管道0。
測試沒有問題,至此nanomsg安裝完成。
