Websocket断線再接続


websocketはhtml 5が発表された後に現れた新しい技術で、それが新しい技術だと言っても、実はあまり新しい技術ではありません.結局2-3年もあるからです.しかし、多くの国内の実例を探して、発見が少なく、使いにくいのか、それともこの技術に欠陥があるのか、今日はさておき、websocketの断線再接続を紹介します.,,,
まずクラスライブラリを提供します.https://github.com/joewalnes/reconnecting-websocketああ、これはwebsocket再接続のクラスライブラリで、簡単な断線再接続の問題を処理するのに使いやすいです.
次に紹介したいのは、私がプロジェクトで出会った問題です.これは比較的普遍的な断線再接続問題です.のよし、くだらないことは言わないで、直接例を見てみましょう.
まず、オブジェクトのパラメータが接続するアドレスであるwebsocketオブジェクトを作成します.これは一般的にサービス側が提供しています.の
var ws = new WebSocket('ws:../../websocket');

メッセージを受信したイベントを監視することを書き直します
ws.onmessage = function(msg){
    console.log('msg:',msg);
    //do something
};

次に、リスニングが接続を閉じたイベントを書き直します.
ws.onclose = function(){
    console.log('closed....');
};

OK、そうすれば、一番簡単なwebsocketが書けます.では、次は断線再接続の機能を実現します.下を見てください.の
function reconnect (){
    rews = new WebSocket('ws:../../websocket');
    rews.onmessage = function(){
      //dosomthing  
    };
    rews.onclose = function(){
        //dosomthing
    };
}

そう、この方法では、さっきやったことをもう一度書き直します.そうです.
では問題は、この再接続関数をどこで呼び出すかということです.
var disConnect = function(){
    setTimeout(function(){
         reconnect();
    },5000);
}

まず関数を書きます.5秒おきに呼び出します.この関数はoncloseに入れます.そうです.
ws.onclose = disConnect;

OK、これで簡単な断線再接続ができますから、急いで試してみましょう.