создать локальное событие с помощью socket.io

Я использую socket.io на стороне сервера (и клиента).

Что я хочу сделать, так это вызвать событие при отключении. Но, кажется, это не подхватывается на местном уровне.

На сервере узла у меня есть:

sock.on('chat:leave', function(user){
     //delete user from chat room list
});

sock.on('disconnect', function(){
    var user = sock.user;
    sock.emit('chat:leave', user);
});

Однако это не работает - отключение срабатывает, когда я закрываю окно браузера, но chat:leave, испускаемый из обратного вызова disconnect, не обрабатывается обработчиком sock.on('chat:leave').


person chovy    schedule 09.12.2013    source источник


Ответы (1)


Я думаю, вам нужно переписать свой код (AFAIK, то, что вы пытаетесь сделать, невозможно):

var userLeft = function(user) {
  // delete user from chat room list
};
sock.on('chat:leave', userLeft);
sock.on('disconnect', function() {
  userLeft(sock.user);
});
person robertklep    schedule 09.12.2013
comment
Вот так у меня заработало. Просто интересно, будет ли он слушать местные излучения. - person chovy; 09.12.2013