这可能是一件非常容易做的事情,但我对此感到很困惑。
基本上,我想了解当前浏览我网站的人数。问题是,我无法计算 session 数。其中许多是为不同的目的而创建的。 (例如,登录用户的 $_SESSION['age']。)
此外,还有“logged_in”和“not_logged_in”的人。
简而言之,如何以最专业的方式统计我网站的用户数?
附言。请注意,我将每 1-5 分钟运行一次该函数,获取金额,将其存储以用作缓存。 5分钟后,缓存会再次被替换,以此类推。因此,如果您认为数据库连接是最专业的方式,那么数据库连接是可能的。
最佳答案
手头的问题之一是,您的 PHP 不知道用户何时关闭浏览器。
我通过组合用户数据库(时间戳/日期时间)中的“last_used”字段和定期发送“我还活着”的“心跳”函数 (jscript) 做了类似的事情-向服务器发出命令(每 x 秒),然后更新此 last_used 字段。它不是一个高流量站点,但它的工作非常可靠。
然后只计算数据库中当前心跳的用户数量:
SELECT COUNT(*)
FROM your_user_table
WHERE last_used > TIMESTAMPADD(NOW(), INTERVAL -30 SECOND)
为此您不需要用户表,您也可以使用 session 表。这种机制也可以用于其他功能,例如即时向用户发送新消息等。
关于php - 当前在线访问者逻辑在 PHP 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8505505/