远程过程调用 - 客户提供的服务

Remote Procedure Call - Service offered by client

我想开发一个 Qt5/C++ 使用远程过程调用 (RPC) 的客户端-服务器应用程序。

想法: 服务器侦听多个客户端的传入连接。 客户端提供一组 procedures/services 服务器可以调用,以便从客户端收集数据并通知其他客户端有关更改。

关键是: 到目前为止,我所看到的 RPC 库似乎期望服务器提供客户端可能调用的服务。但我想做相反的事情。客户端应提供服务器可能调用的服务。 方向很重要,因为我只想在服务器端启用端口转发,而不是在客户端。

我检查过的库是:

问题:

gRPC 支持双向流,可能满足你的需求。

客户端可以打开与服务器的长期连接,然后服务器可以通过在流上发送响应来"call" 客户端。

客户端可以通过在流上发送另一条消息来响应。

http://www.grpc.io/docs/tutorials/basic/c.html