检测客户端是否已断开连接

时间:2013-10-07 00:20:56

标签: python web-applications webapp2

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

为此,我将创建一个表格,在其中我存储IP地址,userId(使用cookie)和用户名(如果用户已注册)用户和游戏实例的地址播放。

除非游戏结束(任一玩家获胜),否则我不会删除表格中的条目,但我意识到,如果一个(或两个)玩家在游戏结束之前断开连接或导致网络错误,该怎么办?一个(或两个)球员退出。

我如何知道游戏不再有效,以便我可以从表中删除条目并通知玩家仍在等待对手移动?

1 个答案:

答案 0 :(得分:0)

你可以:

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

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