websocket是HTML5下一個不錯的網絡協議解決方案,有一個場景不少猿猿都會遇到,手機鎖屏後大約60秒,IOS會自動斷開websocket鏈接,鏈接丟失了,那咱們的數據也就斷了。websocket 斷線重連方案以下:javascript
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