在线GAE应用程序用户

时间:2012-06-02 03:42:22

标签: google-app-engine

如何知道用户当前是否已登录Google App Engine应用程序?

该应用程序允许其用户浏览其他用户的个人资料。如果查看的个人资料也在应用程序中使用或登录,我想要通知所查看的个人资料在线。

如何达到这个要求?

2 个答案:

答案 0 :(得分:1)

如果您正在管理用户配置文件,则您知道用户何时登录。在登录过程结束时,只需以某种方式将用户的登录信息保存在内存缓存中。 稍后您可以通过在memcache中搜索用户来检查用户是否已登录。

这种方式很容易捕获并跟踪连接事件,但您还必须在用户断开连接时做出反应,以使您的列表保持最新状态。为此,您可以使用频道。请参阅google documentation

答案 1 :(得分:1)

正如Gaël建议的那样,你可以使用Channel API来追踪这一点,但这可能有点过分了。如果你想走那条路,那就听听连接的&断开连接的消息,并更新数据库中指示用户已登录的字段。

较便宜的路线可能只是更新用户记录中的字段,例如“上次此用户请求页面”。如果自上次用户请求页面以来已超过 n 分钟,则假设它们已退出。实际上,您甚至可以在memcache中使用从userid到上次访问时间的映射来执行此操作。

归结为你想要对“登录”信息做什么:如果你只是想要了解一个用户是否在线,或者有多少用户在线,那么使用数据存储或memcache解决方案很可能好。另一方面,如果您想反映用户的存在,那么他们可以响应例如。即时消息,然后您可能还需要Channel API,以便您可以立即向他们发送消息。