Web applications 世卫组织';它在塔架上在线

Web applications 世卫组织';它在塔架上在线,web-applications,session,pylons,Web Applications,Session,Pylons,我目前有一个使用基本用户系统设置运行的Pylons应用程序。我想尝试创建一个小部件,显示当前登录到该网站的用户。我不知道我该如何处理这件事;我不确定挂架会话是否处于活动状态取决于用户是否真的在web apps页面上,因此我正在寻找一些想法,以了解如何利用我已经拥有的功能来实现这一点。有几种方法可以做到这一点,具体取决于您希望的准确性 最简单也是第一种方法是使用memecached或持久存储来跟踪用户,以及他们最后一次访问页面的时间。假设任何人在X分钟内点击了一个页面就可以登录,只要他们没有“登录

我目前有一个使用基本用户系统设置运行的Pylons应用程序。我想尝试创建一个小部件,显示当前登录到该网站的用户。我不知道我该如何处理这件事;我不确定挂架会话是否处于活动状态取决于用户是否真的在web apps页面上,因此我正在寻找一些想法,以了解如何利用我已经拥有的功能来实现这一点。

有几种方法可以做到这一点,具体取决于您希望的准确性

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

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

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

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