Websocket断線再接続
websocketはhtml 5が発表された後に現れた新しい技術で、それが新しい技術だと言っても、実はあまり新しい技術ではありません.結局2-3年もあるからです.しかし、多くの国内の実例を探して、発見が少なく、使いにくいのか、それともこの技術に欠陥があるのか、今日はさておき、websocketの断線再接続を紹介します.,,,
まずクラスライブラリを提供します.https://github.com/joewalnes/reconnecting-websocketああ、これはwebsocket再接続のクラスライブラリで、簡単な断線再接続の問題を処理するのに使いやすいです.
次に紹介したいのは、私がプロジェクトで出会った問題です.これは比較的普遍的な断線再接続問題です.のよし、くだらないことは言わないで、直接例を見てみましょう.
まず、オブジェクトのパラメータが接続するアドレスであるwebsocketオブジェクトを作成します.これは一般的にサービス側が提供しています.の
メッセージを受信したイベントを監視することを書き直します
次に、リスニングが接続を閉じたイベントを書き直します.
OK、そうすれば、一番簡単なwebsocketが書けます.では、次は断線再接続の機能を実現します.下を見てください.の
そう、この方法では、さっきやったことをもう一度書き直します.そうです.
では問題は、この再接続関数をどこで呼び出すかということです.
まず関数を書きます.5秒おきに呼び出します.この関数はoncloseに入れます.そうです.
OK、これで簡単な断線再接続ができますから、急いで試してみましょう.
まずクラスライブラリを提供します.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、これで簡単な断線再接続ができますから、急いで試してみましょう.