客户端 Socket.io 断开连接并持续重新连接到 websocket

Client Socket.io disconnects and reconnects to websocket persistently

我通过 Socket.io 1.3.4(通过 websockets)连接到 NodeJS 服务器和客户端 socket.io 触发 "disconnect" 事件 5-30 秒。

每次 "disconnect"->"reconnecting"->"reconnect" 迭代需要大约。 2秒。我通过电缆连接到非常稳定的网络。服务器托管在 AWS 上。

有时我的 Wi-Fi 连接不好,但根本没有 "disconnect" 事件触发。

  1. 如何调试这个问题?

  2. 我如何才能看出谁是有罪的 - 服务器还是客户端?

  3. socket.io如何理解是时候断开连接了?从他们的代码中无法理解这一点。

编辑。 Socket.io 配置:

io = require('socket.io')(server, { 
      log: false
    , "close timeout": 60
    , "heartbeat timeout": 60
    , "heartbeat interval": 20
})

我在 node 前面的 nginx 运行 也有类似的问题,这是因为 proxy_read_timeoutproxy_send_timeout 设置得太低了。 Socket.io 每 25 秒发送一次心跳,因此请确保将这些超时设置为大于 25 秒。