websocket 心跳设置正常,过一段时间后会断线重连,有哪些情况会产生这个问题,如何解决?

积木

前端使用vue,后端使用php-gateway
前端心跳设置正常,时间25秒一次。
在页面挂起长链接一段时间后,客户端发送消息推送给服务端(成功),服务端会返回信息状态(成功),但是整个长链接就会断线重连。
有的时候在页面挂着也会断线重连。

截图

4550 4 0
4个回答

keytehu

断开的时候把时间也打印下,有可能是客户端被挂起导致心跳数据没发出去,服务端把连接断开了。

  • 积木 2020-08-24

    在断开的上一个时间,没有发送心跳请求。你说这个情况是不是就是在发送客户端在发送数据的时候把心跳的时间给延迟了,导致的了服务端没有接受到心跳信息,超时了给断掉了。

  • keytehu 2020-08-24

  • 积木 2020-08-24

    那如果客户端是接收长链接消息的时候呢,返回的信息把心跳给挤掉了。那其中的一个客户端发送数据过多,另一个客户端长链接就会断掉,刚发的这个图。这种情况如何调整。

积木

如果不进行任何操作,每隔一段时间发送一次心跳。也会有自动断开链接的情况,这种情况呢。

  • keytehu 2020-08-24

    也有可能网络不稳定吧。外网指望一个连接永久保持不断开是不现实的,还是要有重连机制。

积木

截图

  • 暂无评论
积木

截图

  • 暂无评论
年代过于久远,无法发表回答
×
🔝