我有当用户需要不断连接的Web应用程序。 默认情况下,socket.io将断开60秒后的连接。 我有“重新连接”打开的,因此它基本上是关闭并重新打开连接的每一分钟。 这会导致饲料/通知的问题,我连接的客户端。 难道是安全设置此超时让说,10分钟,或可能更高? 是否有一个原因,它是如此之低,现在呢?
Answer 1:
我的猜测是,你可能会被误解的'close timeout'
的配置。 它不会导致60秒后要关闭的连接。 (心跳是毫无意义的,如果客户经常重新连接)。
如果客户端断开连接, close timeout
是时间的服务器将解除与该连接相关联的资源之前等待的时间。 从本质上讲,这使得具有间歇连接问题的客户端尝试重新连接服务器已经忘记了他们面前。 设置close timeout
到十分钟可能是一个坏主意,因为它会占用服务器资源。
如果你的客户,其实,断开每60秒,然后,像samjm说,别的东西是错误的。
Answer 2:
我不相信60秒后您的插座应断开。 我将调查为什么这是实际发生。 正确地握手插座应心跳和保持开放无限期(禁止网络问题,你无法控制的),直到客户端或服务器关闭连接后,那绝对是我的经验。
您的连接实际上是关闭的事实听起来像它可能无法正确握手,或者不被接受的心跳。
Answer 3:
您可能已经想通了这一点,但你的插座有可能在60秒后,因为你不发送心跳(“2 ::”)回服务器断开连接。
下面是一些与工作Python代码的WebSocket客户端模块 。
# on_message handles messages from the server
def on_message(ws, message):
if message[:3] == '2::':
ws.send('2::')
文章来源: Is it safe to set a high close timeout on socket.io?