如何确定websocket连接的ping间隔时间

31

我了解Ping的作用是帮助防止代理关闭闲置连接。是否有关于多久ping一次的指南?每秒钟一次?10秒钟?一分钟?这重要吗?初步的谷歌搜索并没有给我答案,websocket规范只说明了Ping的作用,而没有说明应该多久执行一次。

3个回答

20

我知道这是一个老问题,但我也一直在寻找答案。先前的答案没有提到时间间隔,因此我查看了一些流行的Websocket框架的代码。虽然这不是官方答案,但至少它给出了一个起点:这个库 使用20秒的时间间隔。我不确定这是否完全正确,但比“经常”或“相当频繁”更好。


7
以下是翻译的结果:

下面的SO线程中被接受的答案似乎很好地回答了你的问题:
从浏览器发送WebSocket ping/pong帧

听起来你可以经常进行ping(使用自己的自定义ping/pong字符串),除非WebSocket服务器连接了大量客户端,否则对系统的负载将相当小。


0
在我的实践中,大约55秒左右通常可以确保可靠的连接,因为大多数中间代理和NAT路由器的超时设置至少为60秒。
然而,请注意,根据特定应用程序的具体情况,某个服务器可能会在其一侧设置较低的空闲超时时间。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接