处理 Websocket 超时问题

煎鱼 2021年5月22日11:49:22
评论
51,683 456字阅读1分31秒

在 websocket 连接被建立后,如果一段时间未活动,服务器或防火墙可能会超时或终止连接。想要解决这个问题, 我们可以周期性地给服务器发消息。我们需要两个方法实现:一个来确保连接不会中断,,另一个用来取消此设定。同我们也需要一个 timerID 变量

让我们来看一下实现:

var timerID = 0; 
function keepAlive() { 
    var timeout = 20000;  
    if (webSocket.readyState == webSocket.OPEN) {  
        webSocket.send('');  
    }  
    timerId = setTimeout(keepAlive, timeout);  
}  
function cancelKeepAlive() {  
    if (timerId) {  
        clearTimeout(timerId);  
    }  
}

现在我们实现了我们需要的两个方法,我们可以在 onOpen() 的最后面调用 keepAlive() ,在onClose() 的组后面调用 cancelKeepAlive()

处理 Websocket 超时问题

 

 

好了!我们我们完美的解决了 websocket 超时的问题。

煎鱼
  • 本文由 发表于 2021年5月22日11:49:22
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
Linux环境手动搭建 Ghost 博客 网站建设

Linux环境手动搭建 Ghost 博客

Ghost 是使用 Node.js 语言编写的开源博客平台,您可使用 Ghost 快速搭建博客,简化在线出版过程。本文档介绍如何在腾讯云云服务器(CVM)上手动搭建 Ghost 个人网站。 演示软件版...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: