如何确定WebSocket连接的Ping间隔

guykilcj  于 12个月前  发布在  其他
关注(0)|答案(3)|浏览(211)

我理解Ping是为了帮助防止代理关闭空闲连接。有没有什么指导方针。多久打一次电话?每秒一次?十秒?一分钟?有什么关系吗?初步的谷歌搜索没有给我任何信息,而且WebSocket规范只说明了ping是什么,而没有说明应该多久执行一次

4bbkushb

4bbkushb1#

我知道这是一个老问题,但我也一直在寻找答案。前面的答案没有提到间隔,所以我搜索了一些流行的WebSocket框架的代码。这不是官方的,但至少它提供了一个起点:this repo使用20秒间隔。我不确定这是否100%正确,但它比“经常”或“有点频繁”好。

nukf8bse

nukf8bse2#

以下SO线程的公认答案似乎很好地回答了您的问题:
Sending websocket ping/pong frame from browser
听起来你可以经常ping(使用你自己的自定义ping/pong字符串),除非有大量的客户端连接到你的WebSocket服务器,否则系统上的负载将是相当小的。

sg3maiej

sg3maiej3#

在我的实践中,大约55秒通常可以确保可靠的连接,因为大多数中间代理和NAT路由器的超时设置至少为60秒。
但是请注意,给定的服务器可能会根据给定应用的具体情况设置更低的空闲超时。

相关问题