在客户端代码中使用断点时,socket.io断开连接

时间:2019-03-20 14:51:18

标签: socket.io google-chrome-devtools

调试使用socket.io的应用的最佳方法是什么?

应用程序运行正常,但是当我使用chrome dev工具在应用程序中设置断点时,几秒钟后,socket.io客户端与服务器断开连接(或服务器关闭了连接),可能是由于客户端造成的在检查断点时保持空闲状态。

我在这里想念什么?大家如何使用使用socket.io的应用程序使用chrome开发工具?

2 个答案:

答案 0 :(得分:0)

我禁用了传输中的轮询,这似乎可以解决问题。这就是我现在的交通工具。

io.set('transports', ['websocket']);

答案 1 :(得分:0)

我在使用socket.io 2.20版本(截至2020年1月的最新版本)时遇到了相同的问题,并在客户端使用Chrome浏览了断点。解决方案是(暂时)增加Engine.IO超时设置,如下所示:

const io = ...; // initialize socket.io how you wish
io.eio.pingTimeout = 1200000; // 20 minutes, plenty of time to debug!
io.eio.pingInterval = 5000;  // can change this if you like

请注意,较早版本的socket.io支持这种分配这些设置的方法:

const io = ... initialize socket.io how you wish;
io.set('heartbeat timeout', 1200000);
io.set('heartbeat interval', 5000);

完成调试后,请不要忘记将其恢复为合理的值(或依赖于默认值)。