一個小巧的rpc通信組件(C++和python)

C++的網絡庫一般都很重,這裏基於zmq這個高性能的開源消息中間件用C++和python寫了一個客戶端/服務器互相異步通信的rpc組件

代碼

github:https://github.com/tashaxing/LittleRpc

其中:

  • 用的是zmq的router和dealer異步模式
  • 支持請求/應答和推送
  • src/cpp目錄的little_rpc.hlittle_rpc.cpp是C++實現的rpc庫,可以include進自己的項目,注意鏈接zmq的庫
  • src/cpp目錄的little_rpc.py是python實現的rpc庫(只有client部分),可以import進自己的項目,注意需要先安裝zmq的包
  • example目錄包含C++和python的使用示例

編譯

編譯器需要支持C++11
直接用cmake編譯(windows和linux雙平臺),可以運行C++和python的demo

使用

啓動一個server和兩個client(分別是C++版和python版)
相互通信運行結果如下

server

rpc server is listening on tcp://*:5000
receive rpc request, conn_id: cpp_client_1559123432513433500 req_data: request for lucky day
receive rpc request, conn_id: py_client_1559123437.01 req_data: request for happy life
publish to all clients

C++ client

connect to tcp://127.0.0.1:5000
send to server
on_msg_result: response to cpp_client_1559123432513433500 content: request for lucky day
on_msg_result: welcome to rpc server!

python client

connect to tcp://127.0.0.1:5000
send to server
on_msg_result: response to py_client_1559123437.01 content: request for happy life
on_msg_result: welcome to rpc server!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章