gpt4 book ai didi

c++ - 在 Grpc 中使用双向流时如何检测(物理)断开连接

转载 作者:行者123 更新时间:2023-12-03 07:05:24 26 4
gpt4 key购买 nike

我正在使用 Grpc 的同步 C++ API 通过需要无限期保持打开状态的双向流发送消息。

现在,如果我拉服务器和客户端之间的电缆,该流上的 WriteRead 调用将在两侧阻塞大约 15 分钟,然后返回

如何将 ReadWrite 的超时设置为小于 15 分钟?


我正在启动服务器:

ServerBuilder srvBuilder;

srvBuilder.AddChannelArgument(GRPC_ARG_KEEPALIVE_TIME_MS, 2000);
srvBuilder.AddChannelArgument(GRPC_ARG_KEEPALIVE_TIMEOUT_MS, 1000);
srvBuilder.AddChannelArgument(GRPC_ARG_HTTP2_BDP_PROBE, 1);
srvBuilder.AddChannelArgument(GRPC_ARG_MAX_CONNECTION_IDLE_MS , 1000);

srvBuilder.AddListeningPort("0.0.0.0:50505", grpc::InsecureServerCredentials());
srvBuilder.RegisterService(&testService);

在 Ubuntu 16.04 LTS 上使用 Grpc 1.10.0

最佳答案

您可以在调用前通过在 ClientContext 上调用 set_deadline 来设置 RPC 的截止日期。

更新 - 对于造成的误解,我深表歉意。GRPC_ARG_KEEPALIVE_TIME_MS 正是您想要的。它未按预期工作的原因可能与您进行读写的方式有关。

关于c++ - 在 Grpc 中使用双向流时如何检测(物理)断开连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49276298/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com