Я использую Socket.io v0.9.16 и Chrome 34
Я пытаюсь удалить конкретного слушателя или отказаться от подписки на определенную подписку
Что-то вроде этого:
socket.on('testComplete',function(data){
console.log('test complete',data);
});
function emitTest(){
console.log('emitting test');
socket.emit('test','first emit');
}
function removeListener(){
socket.removeListener('testComplete');
}
Если я вызываю функцию emitTest
, а затем функцию removeListener
, я все еще вижу сообщение 'test complete'
, когда я снова вызываю emitTest
. Слушатель должен быть удален, если функция сокета работает даже.
Я ищу способ удалить конкретный прослушиватель, который действительно работает.
Этот ответ говорит, что removeListener не работает.
Есть ли недостаток, чтобы просто сделать это:
socket.removeListener=function(name){
if(socket.$events.hasOwnProperty(name)){
delete socket.$events[name];
}
};
Я правильно ответил на ответ, но я использую это в своем коде, так как он работает лучше с моим дизайном.