<分区>
我正在开发基于 PHP/MySQL/Javascript 的在线国际象棋游戏。我遇到的一个问题是用户可能在一端关闭他的浏览器。有什么方法可以可靠地检测是否有人闲置/关闭了页面?
更复杂的是,我们学校的服务器不支持 cron 作业 -_-
标签 php javascript mysql
<分区>
我正在开发基于 PHP/MySQL/Javascript 的在线国际象棋游戏。我遇到的一个问题是用户可能在一端关闭他的浏览器。有什么方法可以可靠地检测是否有人闲置/关闭了页面?
更复杂的是,我们学校的服务器不支持 cron 作业 -_-
最佳答案
正如其他评论者所建议的那样,唯一可靠的方法是对您的服务器使用 ping 技术。这样您就可以控制游戏,而不是浏览器。您必须“跟踪”用户的方法是触发 AJAX 调用……我认为每 5 秒通常就足够了……对服务器而言。所有这一切要做的就是将某些内容插入“跟踪”表或更新您在“游戏”表中创建的新列以跟踪用户上次进行服务器事件的时间(忽略游戏中的正常 Action ......你可以对正常移动执行相同的过程并重新设置 ping 间隔,以避免过度检查)。因此,每次用户移动(或其他需要服务器交互的操作)时,您都必须检查对手最后一次服务器事件的时间 - 如果对手在 7 秒内没有移动当前时间,则对方的浏览器已停止通信(无论出于何种原因)。我说 7 秒的原因是因为服务器/数据库通信和任何可能的网络滞后发生了额外的处理。由于网络滞后可能是瓶颈,您可能希望将此值增加到大约 10。
关于php - 有什么方法可以检查是否有人使用 Javascript/PHP 关闭了浏览器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13775934/