【问题标题】:Who's Online in Pylons谁在 Pylons 在线
【发布时间】:2009-11-20 02:03:39
【问题描述】:

我目前有一个 Pylons 应用程序在运行一个基本的用户系统设置。我想尝试创建一个小部件来显示当前登录到该网站的用户。我不确定我应该如何处理这个问题;我不确定 pylons 会话是否处于活动状态是基于用户是否真的在 web 应用程序页面上,所以我正在寻求一些想法,以了解如何使用我已经拥有的东西来完成这个。

【问题讨论】:

    标签: web-applications session pylons


    【解决方案1】:

    有几种方法可以做到这一点,具体取决于您想要的准确度。

    最简单也是第一种的方法是使用 memecached 或持久存储来跟踪用户,以及他们最后一次点击页面的时间。考虑在 X 分钟内点击页面的任何人都被“登录”,只要他们没有“注销”。如果您只是在每个页面命中时更新数据库,或者更新 memcached(或更快的数据库),然后在最后一分钟内查询它的会话。

    第二个,但在您的服务器上更密集,在每个页面上放置 Javascript,每 XX 秒/分钟访问您网站上的一个特殊 URL,以指示用户已登录。记录并使用该计数。这样做的好处是您的 JS 可以使页面上的计数器实时更新。虽然轮询在您的服务器上可能很昂贵。

    或者第三个,使用 Comet 风格的系统,比如 Orbited,只要用户在连接到服务器的页面上,连接就会打开,并且您可以跟踪您有多少打开的会话。我相信每台服务器一次 Orbited 可以处理大约 10k 个打开的连接。

    我推荐第一种类型,因为它需要的额外开销/设置最少,并且可以处理相当常见的情况。如果您正在使用需要更准确的实时聊天,请考虑其他两个之一。

    【讨论】:

      猜你喜欢
      • 2020-12-14
      • 1970-01-01
      • 2010-09-19
      • 1970-01-01
      • 2011-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-21
      相关资源
      最近更新 更多