nodejs - 在断开连接时完全删除用户(socketio)

时间:2017-01-20 04:46:15

标签: javascript node.js sockets socket.io

我的socketio收集用户脚本;

var users = [];

io.sockets.on( 'connection', function( socket ) {    
socket.on('new user', function(data) {    
socket.nickname = data.nick;    
users[socket.nickname] = socket;    
});

});

我想删除已断开连接的用户。做完了;

socket.on('disconnect', function() {
delete users[socket.nickname];
});

之后,没有错误。但是当我做的时候

console.log(typeof users[socket.nickname]);

它为我提供object

的输出

此外,还有一些关于用户的垃圾数据。 (套接字事件监听器,命名空间)。在不留下任何数据的情况下完全删除用户的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

socket.on('disconnect', function() {
socket.get('nickname', function(err, user) {
  delete users[user];
  io.sockets.emit('update', users);
});
});