将gRPC客户端保持在侦听模式,以便从服务器发送消息

时间:2018-04-30 10:34:32

标签: c++ client client-server grpc

我有一个用C ++编写的gRPC服务器,它运行在服务器上Gabroo

Gabroo:~/grpc/examples/cpp/stream_server$ ./stream_server
DB parsed, loaded 1 features.
Server listening on 0.0.0.0:50051

客户端在同一台服务器上运行,并在收到消息后退出。

Gabroo:~/grpc/examples/cpp/stream_server$ ./stream_client
DB parsed, loaded 1 features.
-------------- GetFeature --------------

Found feature called PatriotsPath,Mendham,NJ07945,USA at 40.7838, -74.6144
Found no feature at 0, 0

现在,如果服务器想要向客户端发送消息但客户端没有侦听任何消息,则需要进行一些配置,以便客户端持续处于监听模式,以便从服务器发送stream消息。

如果它没有内置,那么无限循环并且每隔1秒检查一次消息是一个好方法。我个人不喜欢这种方法。

问候!!!

1 个答案:

答案 0 :(得分:0)

这可以使用不同的RPC来解决。通常,您可以在客户端和服务器之间定义双向流。这样,如果流是打开的,客户端将正在侦听,准备从服务器接收消息。

如果您的用例更具体,并且您只需要在每个流的客户端RPC上,那么您可以考虑使用服务器流RPC。