誤解を招くタイトルで最初に申し訳ありませんが、それを改善することはできませんでした. ここに私の問題があります: 私は NodeJS と socket.IO を使用しています。ゲームのようなもののロビーシステムを手に入れました。ルートを作成し、他の人が参加するなどです。ルームの所有者が接続を閉じたときに、ルーム自体を削除する必要があります。私はこのようにそれをやった
db.game.findOne({ _id: ObjectId(roomId) }, function(err, item)
{
if ( err || !item || item.started )
return;
if ( item.createdBy == currentUser )
{
db.game.remove({ _id: ObjectId(roomId) }, function(err, item) {
io.sockets.in(roomId).emit('force_interupt');
});
}
それは機能していますが、問題があります。人がブラウザで REFRESH を押すだけの場合、Web サーバー (php、nginx、mongod) は最初にゲームのコンテンツを取得します -> それを表示し、その後接続が失われるため、NodeJS によってゲームが削除されます。これを回避する方法はありますか?