一个小巧的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!

你可能感兴趣的:(C/C++,python)