我目前有一个 Pylons 应用程序,运行基本的用户系统设置。我想尝试创建一个小部件来显示当前登录该网站的用户。我不确定我应该如何处理这个问题;我不确定 pylons 会话是否处于活动状态取决于用户是否实际上位于网络应用程序页面上,因此我正在寻求一些关于如何利用我已经拥有的资源来完成此任务的想法。
有多种方法可以做到这一点,具体取决于您想要的准确程度。
最简单也是第一种方法是使用 memecached 或持久存储来跟踪用户以及他们上次访问页面的时间。考虑在 X 分钟内访问过某个页面的任何人都已“登录”,只要他们没有“注销”即可。如果您只是在每次点击页面时更新数据库,或者更新 memcached(或更快的数据库),则在最后一分钟内查询会话。
其次,但在您的服务器上更密集,在每个页面上放置 Javascript,每 XX 秒/分钟就会在您的网站上点击一个特殊的 URL,以指示用户已登录。记录下来,并使用该计数。这样做的好处是你的 JS 可以使页面上的计数器实时保持最新。尽管轮询在您的服务器上可能会很昂贵。
或者第三,使用 Comet 风格的系统,比如 Orbited,只要用户位于连接到服务器的页面上,连接就会打开,您可以跟踪有多少个打开的会话。我相信 Orbited 每台服务器一次可以处理大约 10k 个开放连接。
我推荐第一种类型,因为它需要最少的额外开销/设置并处理相当常见的情况。如果您使用实时聊天且需要更高的准确性,请考虑其他两种之一。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)