心跳重连缘由
在使用websocket过程中,可能会出现网络断开的情况,比如信号不好,或者网络临时性关闭,这时候websocket的连接已经断开,
而浏览器不会执行websocket 的 onclose方法,我们无法知道是否断开连接,也就无法进行重连操作。
如果当前发送websocket数据到后端,一旦请求超时,onclose便会执行,这时候便可进行绑定好的重连操作。
因此websocket心跳重连就应运而生。
如何实现
在websocket实例化的时候,我们会绑定一些事件:
var ws = newWebSocket(url);
ws.onclose= function() {//something
};
ws.οnerrοr= function() {//something
};
ws.onopen= function() {//something
};
ws.onmessage= function(event) {//something
}
如果希望websocket连接一直保持,我们会在close或者error上绑定重新连接方法。
ws.onclose = function() {
reconnect();
};
ws.οnerrοr= function() {
reconnect();
};
这样一般正常情况下失去连接时,触发onclose方法,我们就能执行重连了。
那么