我正在使用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');
}
Run Code Online (Sandbox Code Playgroud)
如果我调用该emitTest函数,然后调用该函数,我再次调用时removeListener仍会看到该'test complete'消息emitTest.如果套接字功能工作,则应该删除监听器.
我正在寻找一种方法来删除实际工作的特定侦听器.
这个答案说removeListener不起作用.
这样做是否有任何不利因素:
socket.removeListener=function(name){
if(socket.$events.hasOwnProperty(name)){
delete socket.$events[name];
}
};
Run Code Online (Sandbox Code Playgroud)
我将答案标记为正确,但我在我的代码中使用了上述代码,因为它对我的设计更有效.