在socket.io上设置高关闭超时是否安全?

Ari*_*Ari 9 timeout node.js socket.io

我有一个Web应用程序,用户需要不断连接.默认情况下,socket.io将在60秒后断开连接.我打开了"重新连接",所以它基本上每分钟关闭并重新打开连接.这可能会导致向我连接的客户端提供Feed /通知时出现问题.将此超时设置为10分钟或更高可能是安全的吗?它现在有这么低的原因吗?

Bre*_*and 10

我的猜测是你可能会错误解释'close timeout'配置.它不会导致连接在60秒后关闭.(如果客户不断重新连接,心跳将毫无意义).

如果客户端断开连接,close timeout则是服务器在释放与该连接关联的资源之前等待的时间.从本质上讲,这允许具有间歇性连接问题的客户端在服务器忘记它们之前尝试重新连接.设置close timeout为十分钟可能是个坏主意,因为它会占用服务器资源.

事实上,如果你的客户每隔60秒断开一次,那么就像samjm所说的那样,还有其他错误.


小智 3

我不认为你的套接字应该在 60 秒后断开连接。我会调查为什么会发生这种情况。正确握手后,套接字应该心跳并无限期地保持打开状态(除非网络问题超出您的控制),直到客户端或服务器关闭连接,这绝对是我的经验。

您的连接实际上正在关闭的事实听起来可能没有正确握手,或者没有收到心跳。