私はNodejsとSocket.ioを使用しています。クライアントが接続すると、新しいJavaScriptオブジェクトが作成されます。切断時にオブジェクトを削除socket.io
これらのオブジェクトは永遠に残っていますか?クライアントの切断時に削除または削除する必要がありますか?オブジェクトを削除することも可能ですか?私は削除が機能しないことを知っています...
ありがとう - 私はこれは一般的な質問の多くであり、どんな提案も本当に役立つだろうと思います。
ありがとうございます!
私はNodejsとSocket.ioを使用しています。クライアントが接続すると、新しいJavaScriptオブジェクトが作成されます。切断時にオブジェクトを削除socket.io
これらのオブジェクトは永遠に残っていますか?クライアントの切断時に削除または削除する必要がありますか?オブジェクトを削除することも可能ですか?私は削除が機能しないことを知っています...
ありがとう - 私はこれは一般的な質問の多くであり、どんな提案も本当に役立つだろうと思います。
ありがとうございます!
あなたがクリーンアップしないと、はい、私はあなたがそれらをグローバルにしていると仮定しているので、永遠にそこにとどまります。
あなたはすべきdisconnect
イベントリスナーに結合することにより、ユーザーが切断一度クリーンアップ:
var clients = {}
sockets.on('connection', function(socket) {
clients[socket.id] = socket;
socket.on('disconnect', function() {
delete clients[socket.id];
});
});
私は受け入れ答えが本当に問題を解決していないと思います。 あなたは:
io.on('connection', function(socket){
socket.on('event', function(){
console.log('event fired');
});
socket.on('disconnect', function(){
console.log('user disconnected');
});
});
ソケットイベントリスナーはio.on内で作成されている()のコールバック。 socket.ioが内部io.on()コールバック内のすべてのeventlisentersを削除しない限り
socket.on('disconnect', function(){
delete socket.namespace.sockets[this.id];
console.log('user disconnected');
});
:切断した後、これらのイベントリスナーが実際に削除されません.. 私はこのような何かをするはず。 イベントリスナーはそのままです
厳密なモードで削除が許可されていないのですが、これを達成する別の方法はありますか? –
ありがとうございます!私は他のオブジェクトも追跡するために 'クライアント'に同じメソッドを使用できると仮定します。作成された「ソケット」機能の外には、いくつかのオブジェクトがあります。 – dzm
jup!何人かの人々は、 "socket"変数の中にオブジェクトを追加し、自動的に破壊されます。 'socket.data =" foo "'そして、クライアントはそのソケットに対するIDだけを持っています。 –
パーフェクト、それはいい考えです。再度、感謝します! – dzm