设计问题:如何在线显示用户数量?

时间:2011-06-21 20:37:37

标签: php mysql web-applications

计划开发LAMP Web应用程序。我可以使用哪些一般策略来显示当前登录到我的站点的用户数量?我希望能够准确地显示“目前有1000个在线用户”或“用户John Doe当前在线”等内容。

6 个答案:

答案 0 :(得分:2)

将涉及数据库。因此,每当有人登录网站时,您都可以在用户的​​表中为last_login添加一个字段。然后可以有一个脚本对该用户的表进行查询,以计算last_login在最后x个时间内的行数。缓存此缓存并在每隔z时间重新填充此缓存可能会很好,然后从此缓存中拉出,而不是每次请求都针对用户的表运行查询。所以数据库+某种缓存系统。

答案 1 :(得分:2)

我建议使用CodeIgniter PHP框架。

这将允许您非常轻松地将会话数据存储在数据库中(您只需在config.php文件中启用它)。然后,您可以在数据库的会话表中查询会话ID的数量。

以下是CodeIgniter会话类的信息,以便您了解如何使用它: CodeIgniter Session Class

这里还有一个指向CodeIgniter论坛的链接,详细了解如何实现这一点:CodeIgniter Forum

答案 2 :(得分:1)

这很容易做到,但不准确。 Html是无状态的,无法知道用户是否仍在查看您的页面或已离开。

如果您想记录匿名用户和登录用户,您可以使用短暂超时的跟踪cookie,比如五分钟,并将此cookie链接到活动会话数据库。

答案 3 :(得分:0)

  1. 计算会话数据库中的活动会话数。

答案 4 :(得分:0)

如果您使用数据库存储会话信息,则可以轻松查询会话表并获取存储的唯一会话数。

答案 5 :(得分:0)

在数据库中记录某种上次访问的时间记录,并记录该人员已处于活动状态。然后在DB中查询在过去5分钟左右活动的用户。会给你一个近似的。