php - 当前在线访问者逻辑在 PHP 中

标签 php database session caching optimization

这可能是一件非常容易做的事情,但我对此感到很困惑。

基本上,我想了解当前浏览我网站的人数。问题是,我无法计算 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/

相关文章:

c# - 在连接字符串中设置到数据源的方式

java - 如何设计适合自定义排序的数据结构?

python - session 变量丢失,在 Django 中

jquery - 我使用jsp将数据存储在session中。如何使用 jquery 检索数据?

php - 计算日期范围内的设备总数

javascript - 填充数据库字段后禁用提交按钮

php - 如何在 php 中从 MySQL 数据库中选择表?

java - MongoDB 给出 NullPointerException

c# - Cookie less Session 在关闭 IE 后不会过期

php - 我的代码有什么问题?