当前无法处理React Native中终止的应用程序,因此我认为最好的办法是在后端实现它。
用户何时开始保存您的时间,如果现在和倒计时开始之间的时差超过30分钟,用户将不再“玩”。
,
一种检测用户已离开游戏的方法是使用Firebase的onDisconnect
handler。通过此调用,您可以在数据库上注册写操作,该操作在服务器检测到客户端消失时执行。
服务器可以通过两种方式检测到这一点:
- 如果客户端干净地断开连接,它将向服务器发送一条消息,告知它正在断开连接,并且服务器立即为该客户端运行断开连接处理程序。
- 如果客户端以其他方式断开连接,则服务器将在套接字超时后检测到客户端已消失,这可能需要几分钟。
因此,在您的情况下,您可以使用onDisconnect
处理程序将玩家从游戏中移除,或将其标记为“消失”。
此方法的唯一问题是脏连接可能要花费几分钟,对于您的情况而言可能太长了。
一种替代方法是让客户端定期将一条消息写入数据库,以表示该消息仍在此处,例如lastUpdated
时间戳记。
然后,您可以在读取数据的任何代码中使用该时间戳来检测玩家是否仍在玩游戏,并在适合您游戏的特定时间段后认为他们“消失了”。然后,该代码可以将播放器从数据库中删除。
如果需要,此代码可以在服务器端组件中运行,但是我过去也曾在客户端中运行这种类型的代码,然后使用(服务器端)安全规则来确保它只能删除用户是“消失”了。
本文链接:https://www.f2er.com/3154772.html