【问题标题】:Issue in socket reconnection套接字重新连接中的问题
【发布时间】:2021-02-04 05:55:34
【问题描述】:

我有一个具有套接字功能的应用程序。我可以注意到,当应用程序处于空闲状态时,该应用程序会频繁尝试重新连接。有什么方法可以在不重新连接的情况下保持与服务器的稳定连接?

即使我每 5 秒收到一次 ping,连接也会中断。在我关闭它之前,我需要保持连接。

我已经使用 pingIntervals 配置了我的服务器,如下所示:

var io = require('socket.io')(server, {
    pingInterval: 5000, 
    pingTimeout: 15000
});

客户端配置:

io(TENANT_URL, {
    transports: ['websocket', 'polling'],
    autoConnect: false,
    'reconnection': true,
    'reconnectionDelay': 10000,
    'reconnectionDelayMax': 5000,
    'reconnectionAttempts': 10
});

我可以对配置做些什么来使连接稳定吗?

重新连接时间:

【问题讨论】:

  • 你用pong回复服务器的ping消息吗?如果没有,那么您应该尝试一下。如果不回复 ping 消息,服务器可能会认为您的连接处于非活动状态,并且可能会在一段时间后关闭(通常为 5 分钟,但也取决于配置)。另一件可能有帮助的事情是在客户端设置一个间隔以向服务器发送 ping 消息。

标签: node.js sockets websocket socket.io


【解决方案1】:

您还需要在客户端同步心跳超时和间隔。

客户端

io.pingTimeout = 15000

【讨论】:

  • socket.io/docs/v3 只需查看Disconnection detection 部分即可更清楚地了解它
猜你喜欢
  • 1970-01-01
  • 2017-04-15
  • 2019-03-05
  • 2016-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多