私はsocket.io用のこのラッパーを持っています:
on: function (eventName, callback) {
console.log('socket on hit');
socket.on(eventName, function () {
var args = arguments;
$rootScope.$apply(function () {
callback.apply(socket, args);
});
});
//removes duplicate listener
// console.log('about to remove a listener') ;
socket.removeListener(eventName, callback);
}
これにより、時間の経過とともにリスナーが重複することになります。
これはまだ問題です。 removeListenerを使用すると、イベントは削除されませんが、removeAllListenersを使用すると機能します。
+1のみremoveAllListenersが正しく機能している
2年以上経った今でも同じ問題に直面しています。 単一のリスナーを削除することは基本的なことだと思います。
これに対する解決策はまだありますか?
最も参考になるコメント
2年以上経った今でも同じ問題に直面しています。 単一のリスナーを削除することは基本的なことだと思います。