云迈博客

您现在的位置是:首页 > 前端技术 > 原生js相关 > 正文

原生js相关

[未解决]Websocket 心跳丢失之谜,前端必看

wsinbol2021-05-06原生js相关633
代码见http://git.yunmell.com:9898/wsinbol/airport/index.html文件场景描述Websocket环境下,前端定时发送心跳到服务端,后台亦有120秒

代码见 http://git.yunmell.com:9898/wsinbol/airport/index.html文件

场景描述

Websocket环境下,前端定时发送心跳到服务端,后台亦有120秒的心跳间隔,若120秒没有收到客户端的任何消息,则踢客户端下线.可问题是当前端心跳时间是3秒时,却能正常发送消息,当心跳时55秒时,却不能…测试截图如下,是何原因???

前端心跳是55秒时的截图:

从上面两张图可以明显看出客户端未发送任何消息给服务端,而服务端发送两次pong后,主动断开了连接.

前端心跳是3秒时的截图:

从上图可以看出客户端每隔3秒发送123456789给服务端,服务端回复了Hi+客户端ID,并保持长链接.

解决答案

目前状况就是设置心跳时间为3秒,但是求大神告知为何会出现此状况.

附加说明

  1. 前端的在线离线检测需要后端对客户端发送的响应,我在一开始的时候默认不返回任何消息给客户端,导致前端不停的断线重连

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~