1
私はNode.jsで 'ws'を使用していますが、古い接続がどのくらい削除されているかはわかりません(古い接続は切断またはアイドル状態ですが、これは2つの異なる問題です)。この2つのタイプに対して手動で実装する必要がありますか?古いwebsocket接続を削除するにはどうすればよいですか?
私はNode.jsで 'ws'を使用していますが、古い接続がどのくらい削除されているかはわかりません(古い接続は切断またはアイドル状態ですが、これは2つの異なる問題です)。この2つのタイプに対して手動で実装する必要がありますか?古いwebsocket接続を削除するにはどうすればよいですか?
このためには、サーバー側のライブWebソケット接続オブジェクトのリストを最初に維持する必要があります。ユーザがブラウザを閉じるなどしてWebソケットから切断すると、ユーザのWebソケット接続オブジェクトをリストから削除する必要があります。
サーバーサイドコード。これを処理するには、次のコードでメンバ配列を参照できます。
io.on("connection",function(client)
{
client.on("join",function(data)
{
members[membercount] = client;
membername[membercount] = data;
membercount++;
for(var i =0 ;i <members.length;i++)
{
members[i].emit("message",membername);
}
});
client.on("messages",function(data)
{
for(var i =0 ;i <members.length;i++)
{
if(members[i].id !== client.id)
{
members[i].emit("message",data);
}
}
});
client.on("disconnect",function(data)
{
for(var i =0;i<members.length;i++)
{
if(members[i].id === client.id)
{
membercount--;
members.splice(i,1);
membername.splice(i,1);
}
}
for(var i =0 ;i <members.length;i++)
{
members[i].emit("message",membername);
}
});
});
希望があればこんにちは!!!!!
クライアントがうまく切断しない場合はどうなりますか?ハートビートが失敗するか何か?まだ切断されていますか?ありがとう! – Bren
Webソケットであるため、ノードjsフレームワークは開いているWebソケット接続を待ち受けます。ブラウザが終了すると、切断コールバックメソッドが通知されます。クローズされたインスタンスを削除することによって切断を管理する必要があります。あなたのためにこの仕事が欲しい!!!!!!! –