私は最近PeerJSを使用してWebアプリケーションを開発し、再接続機能を追加しようとしています。PeerJS自動再接続
基本的に、私のアプリはクライアントが、その後に接続することサーバーを作成する誰かによって動作します。サーバーの担当者は、ホストが何をしているかを制御できますが、基本的な双方向通信を制御できます。
クライアントが切断すると、再接続するだけで正常に動作します。しかし、サーバーのユーザーがページをリフレッシュするか、コンピューターがクラッシュした場合、クライアントの制御を再確立できる必要があります。
これは、元の接続IDとピアAPI IDを元に戻すことです。これは、データベースに格納され、サーバーユーザーがクエリに使用できる一意のIDが割り当てられているため、きれいで簡単です。その後、私は近い時にこれを行う再接続するクライアントを有効にする:彼らは再接続されているように、これは動作しているように見えます
// connection is closed by the host involuntarily...
conn.on('close', function() {
// if the clients connection closes set up a reconnect request loop - when the host takes back control
// the client will auto reconnect...
connected = false;
conn = null;
var reconnect_timer = setInterval(function() {
console.log('reconnecting...'); // make a fancy animation here...
conn = peer.connect(connectionid, {metadata: JSON.stringify({'type':'hello','username':username})});
// upon connection
conn.on('open', function() { // if this fails need to provide an error message... DO THIS SOON
// run the connect function...
connected = true;
connect(conn);
});
// didnt connect yet
conn.on('error', function(err) {
connected = false;
});
if(connected === true) {
clearInterval(reconnect_timer);
}
}, 1000);
});
サーバー上で、クライアントを終了することになります - メッセージが送信されカントしかしコネクト機能等を解雇しました間、およびクライアントコンソールは言う:「オープン」イベントは、上記に耳を傾けていたように示されている
Error: Connection is not open. You should listen for the `open` event before sending messages.(…)
...
私は、これは明らかであると思います - 任意のヘルプは高く評価され:)