我通过 Socket.io 1.3.4(通过 websockets)连接到 NodeJS 服务器,客户端 socket.io 会触发“断开连接”事件 5-30 秒。
每次“断开连接”->“重新连接”->“重新连接”迭代大约需要花费时间。 2秒。我通过电缆连接到相当稳定的网络。服务器托管在AWS上。
有时我的 Wi-Fi 连接状况不佳,但根本没有触发“断开连接”事件。
如何调试此问题?
如何查看谁有罪 - 服务器还是客户端?
socket.io 如何知道是时候断开连接了?无法从他们的代码中理解这一点。
编辑。 Socket.io 配置:
io = require('socket.io')(server, {
log: false
, "close timeout": 60
, "heartbeat timeout": 60
, "heartbeat interval": 20
})
最佳答案
我在 Node 前面运行的 nginx 也遇到了类似的问题,这是因为 proxy_read_timeout
和 proxy_send_timeout
设置得太低。 Socket.io 每 25 秒发送一次心跳,因此请确保将这些超时设置为大于 25 秒。
关于javascript - 客户端 Socket.io 持续断开并重新连接到 websocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28795681/