reconnecting-websocket.js

websocket是HTML5下一个不错的网络协议解决方案,有一个场景不少猿猿都会遇到,手机锁屏后大约60秒,IOS会自动断开websocket链接,链接丢失了,那咱们的数据也就断了。websocket 断线重连方案以下:javascript

ReconnectingWebSocket

reconnecting websocket是一个javascript封闭的websocket库,很是小,压缩后仅有3KB。它的功能是当websocket断线后自动帮你重连。使用方法很简单:java

只要把web

var ws = new WebSocket('ws://....');

 替换成websocket

var ws = new ReconnectingWebSocket('ws://....');

 

就好了,当websocket断开着它会帮你自动重连,socket永不断线!网络

它支持事件socket

onopen
onmessage
onmessage
onmessage
onclose // At this point the WebSocket instance is dead.

 websocket 断线重连原理实现函数

var ws = new WebSocket('ws:../../websocket');
ws.onmessage = function(msg){
    console.log('msg:',msg);
    //do something
};
ws.onclose = function(){
    console.log('closed....');
};

 实现websocket断线重连this

var ws = new WebSocket('ws:../../websocket');
ws.onmessage = function(msg){
    console.log('msg:',msg);
    //do something
};
//把刚才干的事情重写一遍
function reconnect (){
    rews = new WebSocket('ws:../../websocket');
    rews.onmessage = function(){
      //dosomthing  
    };
    rews.onclose = function(){
        //dosomthing
    };
}
//每隔5秒去调用一次
var disConnect = function(){
    setTimeout(function(){
         reconnect();
    },5000);
}
//函数放在onclose里
ws.onclose = disConnect;

 转自 https://www.uedbox.com/websocket-reconnect/blog

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息