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

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息