7

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

4

1 回答 1

11

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

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

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

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

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

于 2009-11-20T03:25:39.530 回答