所以,我现在正在做的是在收到新连接时创建一个新的客户端对象,并将它们存储在一个自我管理的对象中;在用户断开连接时,我正在删除该对象。这是它的样子的基础:
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;
我遇到的问题是我的代码的一部分将会运行,如果客户端在服务器访问其客户端对象之前断开连接,它将显示为未定义(因为该对象刚被删除) ,它会引发异常。
如何防止这种情况发生?至少,我怎样才能阻止错误在每次抛出服务器时崩溃?
答案 0 :(得分:-2)
好的,我不知道它是基于事件而不是多线程的,这是一个新答案。
在访问之前,只需检查条目是否存在。如果没有,它就会被删除,你可以做任何事情/不同的事情。