所以,我现在正在做的是在接收到新连接时创建一个新的客户端对象,并将它们存储在一个自我管理的对象中;在用户断开连接时,我正在删除该对象。这是它看起来的基础:
var socketobj = {};
io.sockets.on('connection', function(socket){
socketobj[socket.id] = socket;
socket.on('disconnect', function(data){
delete socketobj[socket.id];
});
});
我正在使用这些客户端对象中的每一个来存储额外的信息,例如关联的用户名等,形式为socketobj[socket.id].user = username;
我遇到的问题是我的代码的一个单独部分将运行,如果客户端在服务器访问其客户端对象之前断开连接,它将出现未定义(因为该对象刚刚被删除),并且它会抛出异常。
我怎样才能防止这种情况发生?至少,我怎样才能阻止错误每次抛出时使我的服务器崩溃?