0

我正在使用webapp2Web 框架在 GAE 上开发一个 Web 应用程序。这是一个两人游戏,同时玩多个游戏实例。服务器充当在两台计算机之间传递游戏数据并对其进行验证的路径。客户端仅通过 HTTP 请求与服务器通信。

为此,我将创建一个表,在其中存储用户的 IP 地址、userId(通过使用 cookie)和用户名(如果用户已注册)以及他们正在玩的游戏实例的地址。

直到并且除非游戏结束(任一玩家获胜),我不会删除表中的条目,但我意识到,如果其中一个(或两个)玩家在游戏结束前断开连接,或者网络错误导致一个(或两者)的球员退出。

我怎么会知道游戏不再处于活动状态,以便我可以从桌子上删除条目并通知仍在等待对手移动的玩家?

4

1 回答 1

0

你可以:

  • last_action = DateTimeProperty(auto_now=true)在您的用户模型中添加一个
  • ended = DateTimeProperty()在您的游戏模型中添加一个
  • 创建一个搜索所有用户的方法last_action < now - x minutes,并设置为现在ended与该用户的所有游戏的属性
  • 创建一个删除自 y 分钟以来结束的所有游戏的方法
  • 通过任务和cron定期运行此方法

但是如果你的客户可以执行 javascript,你最好看看channel service

于 2013-10-17T18:29:04.530 回答