JavaScript 处理WebSocket的超时

我心飞翔 分类:实例代码

通常情况下,WebSocket连接创建后,如果30秒内没有任何活动,服务器端会对连接进行超时处理。

防火墙也可以对单位周期没有活动的连接进行超时处理。

为了防止这种情况的发生,可以每隔一定时间,往服务器发送一条空的消息。

可以通过下面这两个函数来实现这个需求,一个用于使连接保持活动状态,另一个专门用于结束这个状态。

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

keepAlive函数可以放在WebSocket连接的onOpen()方法的最后面,cancelKeepAlive()放在onClose()方法的最末尾。

JavaScript 处理WebSocket的超时,这样的场景在实际项目中还是用的比较多的,关于JavaScript 处理WebSocket的超时就介绍到这了。

JavaScript 处理WebSocket的超时属于前端实例代码,有关更多实例代码大家可以查看

回复

我来回复
  • 暂无回复内容