2017-01-30 5 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"); 
    }); 
}); 

が、そのショーを使用してMが切断さを未定義。

このコードのエラーはどこですか?

答えて

0

あなたがその特定のソケット上adduserメッセージを取得する前にdisconnectメッセージが出た場合は、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'); 
     } 
    }); 
}); 
関連する問題