2015-04-04 2 views
0

Как удалить определенные слушатели в клиентском сокете. Мне нужно удалить слушателя, потому что этот контроллер можно инициализировать несколько раз. и я не хочу добавлять нового слушателя в сокет каждый раз, когда контроллер инициализируется.SocketIO 1.3.2 remove listner, Сторона клиента

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

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

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

Любая помощь будет оценена по достоинству. Документация Socket IO не самая ясная, и я не могу найти ответ в исходном коде.

+0

Вы не должны инициализировать событие сокета изнутри контроллера для начала. Переместите его в службу и потребуйте эту службу в своем приложении, а не в контроллере .. или что-то в этом роде, при этом основная цель заключается в том, что он получает только один раз, независимо от маршрутов и/или контроллеров. – laggingreflex

ответ

0

Сокет socket.io - это eventEmitter, поэтому вы можете увидеть различные способы удаления прослушивателя событий here in the doc for eventEmitter.

У вас есть варианты использования:

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

Примечание: в коде в вашем вопросе removeListner написано с ошибками.

+0

Большое спасибо.! – manukyanv07

Смежные вопросы