轻量级的rpc

2022-09-23 09:46:47 浏览数 (1)

rpclib

https://github.com/carla-simulator/rpclib c 中的rpc,支持端口重用,数据使用msgpack二进制串行化数据,使用简单,操作如下 服务端

代码语言:javascript复制
rpc::server srv(8080);

// Binding a lambda function to the name "add".
srv.bind("add", [](int a, int b) {
    return a   b;
});

// Run the server loop.
srv.run();

客户端

代码语言:javascript复制
rpc::client client("127.0.0.1", 8080);      //支持端口重用,本机使用127.0.0.1不要使用0.0.0.0否则端口重用,数据会被127.0.0.1接收
// Calling a function with paramters and converting the result to int
auto result = client.call("add", 2, 3).as<int>();

不好的地方:单工通信,不支持其他语言,不过代码开源,可以自己加。

开源的rpc功能强大的可以使用百度的brpc https://gitee.com/mirrors/sofa-pbrpc.git 和腾讯的trpc https://github.com/trpc/trpc.git 有开源代码支持,或者ice https://gitee.com/zhongshanlee/zeroc-ice.git

0 人点赞