そのため、私が今行っていることは、新しい接続が受信されたときに新しいクライアント オブジェクトを作成し、それらを自己管理オブジェクト内に格納することです。ユーザーの切断時に、オブジェクトを削除しています。これは、それがどのように見えるかの基礎です:
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;
私が抱えている問題は、コードの別の部分が実行され、サーバーがクライアント オブジェクトにアクセスする直前にクライアントが切断された場合、(オブジェクトが削除されたばかりであるため) 未定義として表示されることです。例外をスローします。
どうすればこれを防ぐことができますか? 少なくとも、エラーがスローされるたびにサーバーがクラッシュしないようにするにはどうすればよいですか?