在socket.io上设置一个很高的closures超时是否安全?

我有一个Web应用程序,用户需要不断连接。 默认情况下,socket.io将在60秒后断开连接。 我已经打开了“重新连接”,所以基本上每分钟都会closures并重新打开连接。 这可能会导致Feed /通知给我连接的客户端。 将这个超时设置为10分钟还是更高可以安全吗? 现在有这么低的原因吗?

我的猜测是,你可能会误解'close timeout'configuration。 60秒后不会导致连接closures。 (如果客户不断重新连接,心跳将毫无意义)。

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

如果你的客户实际上每隔60秒就断开一次,那么就像samjm说的那样,其他的事情是错误的。

我不相信你的套接字应该在60秒后断开连接。 我会调查为什么这是真的发生。 握手正确后,套接字应该心跳并保持无限期开放(禁止networking问题不受控制),直到客户端或服务器closures连接,这绝对是我的经验。

事实上,你的连接实际上是closures它的声音,可能不是握手正确,或心跳没有被接收。

您可能已经知道了这一点,但是您的套接字可能会在60秒后断开连接,因为您没有将心跳线(“2 ::”)发送回服务器。

以下是一些与websocket客户端模块配合使用的Python代码。

 # on_message handles messages from the server def on_message(ws, message): if message[:3] == '2::': ws.send('2::')