提问人:Ozturk 提问时间:10/15/2020 更新时间:10/16/2020 访问量:1315
gRPC 客户端如何了解网络丢失/故障?
How can gRPC client know about network loss/failure?
问:
使用 grpc 在 java 项目中有一个服务器端流式处理。当服务器和客户端之间的网络中断时,客户端甚至不知道问题所在,streamobserver 处于空闲状态,没有活动。我怎么知道这种断开连接?
答:
1赞
voidzcy
10/16/2020
#1
在发送消息之前,您不知道连接已断开。这就是TCP协议的工作原理。
因此,如果您正处于服务器端流式传输过程中,突然拔掉了调制解调器的插头,则客户端永远不会知道,直到操作系统关闭套接字(可能需要几分钟)。
您可以更改为实现双向流式处理,即客户端定期发送请求,以便在尝试写入套接字时了解网络故障,也可以启用 keepAlive。
评论