【问题标题】:Online GAE Application User在线 GAE 应用程序用户
【发布时间】:2012-06-02 03:42:22
【问题描述】:

如何知道用户当前是否在您的 Google App Engine 应用程序中登录?

该应用程序允许其用户浏览其他用户的个人资料。如果查看的个人资料也在应用程序中使用或登录,我希望收到有关查看的个人资料在线的通知。

如何达到这个要求?

【问题讨论】:

    标签: google-app-engine


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      正如 Gaël 建议的那样,您可以使用 Channel API 来跟踪它,但这可能有点过头了。如果您想走那条路,只需侦听已连接和已断开连接的消息,并更新数据库中指示用户已登录的字段。

      一种成本较低的方法可能是只更新用户记录中的一个字段,例如“该用户上次请求页面的时间”。如果自用户上次请求页面以来已超过 n 分钟,则假定他们已退出。实际上,您甚至可以在 memcache 中使用从用户 ID 到上次访问时间的映射来执行此操作。

      归结为您想对“已登录”信息做什么:如果您只是想大致了解用户是否在附近,或者有多少用户在线,则可能使用数据存储或内存缓存解决方案好的。另一方面,如果您想反映用户的存在,以便他们可以响应例如。 IM,那么您可能无论如何都需要 Channel API,以便您可以立即向他们传递消息。

      【讨论】:

        猜你喜欢
        • 2017-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-07
        • 1970-01-01
        • 1970-01-01
        • 2015-08-14
        • 1970-01-01
        相关资源
        最近更新 更多