2017-01-30 6 views
0

Я использую Socket.io построить систему чата, я использую этотПочему я получать неопределенный пользователь отсоединяется socket.io

io.on('connection', function(socket){ 
    socket.on('adduser', function(uname){ 
     socket.username = uname; 
    }); 

    socket.on('disconnect', function() { 
     console.log(socket.username + " disconnected"); 
    }); 
}); 

, но его шоу Неопределенных отсоединено.

Где ошибка в коде?

ответ

0

Если вы получаете disconnect сообщение, прежде чем вы получите adduser сообщение на этой конкретной розетке, то свойство socket.username не будет установлен, и вы увидите undefined disconnected в консоли.

Таким образом, очевидно, что клиент не отправляет сообщение adduser перед отключением. Мы могли бы помочь, если бы увидели код клиента. Или вы можете просто изменить свою регистрацию отключения на что-то вроде этого:

io.on('connection', function(socket){ 
    socket.on('adduser', function(uname){ 
     socket.username = uname; 
    }); 

    socket.on('disconnect', function() { 
     if (socket.username) { 
      console.log(socket.username + " disconnected"); 
     } else { 
      console.log('socket disconnected before username set'); 
     } 
    }); 
});