0
对不起,首先是误解了标题,但不能使它更好。 所以这里是我的问题: 我正在使用NodeJS和socket.IO。 我得到了一个类似游戏的大厅系统。你创建root,其他人加入等。 我想当房间的主人关闭连接的房间应该删除自己。我是这样做的断开连接之前的NodeJS连接
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,网络服务器(php,nginx,mongod)首先获取游戏内容 - >显示它,然后由NodeJS删除游戏,因为连接丢失。 任何想法,我可以避免这一点?
发送“退出”命令的最佳方式是什么?我想到onbeforeunload和onunload,但与onbeforeunload我可以得到确认的返回值和onunload我不能停止卸载 – 2013-02-28 14:49:00
我会建议使用'退出'按钮'退出'命令。在我看来,刷新页面与关闭然后重新打开页面没什么两样。所以,如果刷新不能移除房间,关闭页面也不应移除房间。 – Chen 2013-02-28 15:04:57
我想出了如何做到这一点,谢谢 – 2013-02-28 15:08:23