如何知道用户当前是否在您的 Google App Engine 应用程序中登录?
该应用程序允许其用户浏览其他用户的个人资料。如果查看的个人资料也在应用程序中使用或登录,我希望收到有关查看的个人资料在线的通知。
如何达到这个要求?
如何知道用户当前是否在您的 Google App Engine 应用程序中登录?
该应用程序允许其用户浏览其他用户的个人资料。如果查看的个人资料也在应用程序中使用或登录,我希望收到有关查看的个人资料在线的通知。
如何达到这个要求?
如果您正在管理用户配置文件,您知道用户何时登录。在登录过程结束时,只需将用户的登录信息以某种方式保存在内存缓存中。稍后您将能够通过在您的内存缓存中搜索用户来检查用户是否已登录。
这种方式很容易捕获和跟踪连接事件,但您还必须在用户断开连接时做出反应,以使您的列表保持最新。为此,您可以使用 Channel。请参阅谷歌文档。
正如 Gaël 所建议的那样,您可以使用Channel API来跟踪它,但这可能是矫枉过正。如果您想走那条路,只需侦听已连接和已断开连接的消息,并更新数据库中指示用户已登录的字段。
更便宜的方法可能是只更新用户记录中的字段,例如“该用户上次请求页面”。如果自用户上次请求页面以来已超过n分钟,则假定他们已退出。实际上,您甚至可以在 memcache 中使用从用户 ID 到上次访问时间的映射来执行此操作。
归结为您想对“登录”信息做什么:如果您只是想大致了解用户是否在附近,或者有多少用户在线,那么使用数据存储或内存缓存解决方案可能会很好。另一方面,如果您想反映用户的存在,以便他们可以响应例如。IM,那么您可能无论如何都需要 Channel API,以便您可以立即将消息传递给他们。