我正在使用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 :(得分:0)
如果您收到disconnect
消息,则在该特定套接字上收到adduser
消息之前,socket.username
属性将不会设置,您将看到undefined disconnected
in控制台。
所以,显然客户端在断开连接之前没有发送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');
}
});
});