我目前有一个Pylons应用程序运行基本用户系统设置.我想尝试创建一个小部件,显示当前登录到网站的用户.我不知道如何处理这个问题; 我不确定是否活跃的pylons会话是基于用户是否实际上在Web应用程序页面上,所以我正在寻找一些关于如何使用我已经可能完成此任务的想法.
有几种方法可以做到,具体取决于你想要的准确程度.
最简单,也是第一种方法,使用memecached或持久存储来跟踪用户,以及他们上次访问页面的时间.考虑在X分钟内点击页面的任何人"登录",只要他们没有"退出".如果您只是每次点击更新数据库,或更新memcached(或更快的数据库),那么在最后一分钟内查询会话.
其次,但是在您的服务器上更加密集,在每个页面上放置Javascript,每隔XX秒/分钟就会在您的站点上点击一个特殊的URL,以指示用户已登录.记录并使用该计数.这样做的好处是,您的JS可以使页面上的计数器实时更新.虽然您的服务器上的轮询可能很昂贵.
或者第三,使用Comet风格的系统,比如Orbited,只要用户在连接到服务器的页面上,连接就会打开,你可以跟踪你有多少个打开的会话.我相信,Orbited每台服务器一次可以处理大约10k个开放连接.
我建议使用第一种类型,因为它需要最少的额外开销/设置并处理相当常见的情况.如果你正在使用实时聊天,你需要更多的准确性考虑另外两个中的一个.