0
私はノードを使い始めています。私はHTTPサーバーとsocket.ioを使用しています。すべては期待どおりに動作しますが、ソケットに放出するボタンがあり、10回クリックすると、イベントのメモリリークが検出され、setMaxListenersにログに関する警告が表示されます。これまでのところ私は他の質問を見ましたが、私はリスナーを削除しなければなりませんでしたが、Max Listenerを増やすのではなく、成功していませんでした。サーバー側ではクリックで発光した後にリスナーを削除する - Socket.ioのアドバイスとノード
$(document).ready(function() {
$("#validate").click(function() {
socket.emit('stop', "validate button");
});
});
:
io.sockets.on('connection', function (socket) {
// WE RECEIVE stop
socket.on('stop', function (msg) {
console.log(msg);
clearInterval(refresh);
});
});
がどのように私はイベント後にリスナーを削除することができます
私のクライアント側のコードは次のようになりますか?
どのようなライトが高く評価されます。事前のおかげで
クイック返信ありがとうございますが、クリックを1回実行に制限します.2回目にクリックすると、ソケットには送信されず、リスナーはイベントにとにかく追加し続けると思います。 – Aramil
私は今あなたの問題をよく理解していると思っています。私の答えに行った更新を見てください。 – rdgd
もう一度、リスナーを削除しますが、ボタンはもう機能しません。つまり、達成したいのは、各クリックでリスナーを追加し続けるのを避け、メモリリークメッセージを避けることです。リスナーが10回クリックするとmaxListenersに関する警告が表示されますが、サーバー上でメモリが増えても表示されませんが、その警告は表示されません。私はそれがソケットに放出することが可能である場合、リスナーを削除し、新しい要求を待って、次に新しいリスナーが追加され、放出し、その後、削除することが可能ですか? – Aramil