Socket IO 1.3.2 移除监听器,客户端

SocketIO 1.3.2 remove listner, Client Side

如何删除客户端套接字上的特定侦听器。我需要移除监听器,因为这个控制器可以被多次初始化。而且我不想在每次初始化控制器时都向套接字添加新的侦听器。

function EventMessagesController($scope,socket, $rootScope) {

socket.on('message', function (message) {
     //Handle messsage
})

$scope.$on("$destroy",
    function handleDestroyEvent() {
        socket.manager().removeListner('message');
    }
);
}

如有任何帮助,我们将不胜感激。 Socket IO 文档不是最清楚的,我无法在源代码中找到答案。

一个 socket.io 套接字是一个 eventEmitter 所以你可以看到删除事件侦听器的各种方法 here in the doc for eventEmitter.

您可以选择使用:

 socket.removeListener(event, listener)
 socket.removeAllListeners([event])

注意:您问题中的代码 removeListner 拼写错误。