我理解Ping是为了帮助防止代理关闭空闲连接。有没有什么指导方针。多久打一次电话?每秒一次?十秒?一分钟?有什么关系吗?初步的谷歌搜索没有给我任何信息,而且WebSocket规范只说明了ping是什么,而没有说明应该多久执行一次
4bbkushb1#
我知道这是一个老问题,但我也一直在寻找答案。前面的答案没有提到间隔,所以我搜索了一些流行的WebSocket框架的代码。这不是官方的,但至少它提供了一个起点:this repo使用20秒间隔。我不确定这是否100%正确,但它比“经常”或“有点频繁”好。
nukf8bse2#
以下SO线程的公认答案似乎很好地回答了您的问题:Sending websocket ping/pong frame from browser听起来你可以经常ping(使用你自己的自定义ping/pong字符串),除非有大量的客户端连接到你的WebSocket服务器,否则系统上的负载将是相当小的。
sg3maiej3#
在我的实践中,大约55秒通常可以确保可靠的连接,因为大多数中间代理和NAT路由器的超时设置至少为60秒。但是请注意,给定的服务器可能会根据给定应用的具体情况设置更低的空闲超时。
3条答案
按热度按时间4bbkushb1#
我知道这是一个老问题,但我也一直在寻找答案。前面的答案没有提到间隔,所以我搜索了一些流行的WebSocket框架的代码。这不是官方的,但至少它提供了一个起点:this repo使用20秒间隔。我不确定这是否100%正确,但它比“经常”或“有点频繁”好。
nukf8bse2#
以下SO线程的公认答案似乎很好地回答了您的问题:
Sending websocket ping/pong frame from browser
听起来你可以经常ping(使用你自己的自定义ping/pong字符串),除非有大量的客户端连接到你的WebSocket服务器,否则系统上的负载将是相当小的。
sg3maiej3#
在我的实践中,大约55秒通常可以确保可靠的连接,因为大多数中间代理和NAT路由器的超时设置至少为60秒。
但是请注意,给定的服务器可能会根据给定应用的具体情况设置更低的空闲超时。