我正在尝试通过 PHP 制作一个显示“X 个用户当前正在查看此页面”的内容。我该怎么做?谢谢你。
最佳答案
网络上没有“当前正在查看”的概念,因为一切都是作为非持久连接发生的。您可以获得的最接近的是“X 用户在过去 N 秒内查看了此页面”(如果您选择的 N 值足够小,您可以说它几乎等效)。
然后,要让用户 A 根据用户 B 的操作查看数据,在 PHP 中,您需要有一些持久存储,通常作为像 MySQL 这样的数据库(但 memcached 或 xcache 也可以工作,如果您真的不担心丢失服务器崩溃时的数据)。
只需将“用户X在时间Z查看页面Y”等条目写入您的持久存储,当页面Y显示时,查询最近N秒内Y页面的所有 View 的存储,并统计不同用户的数量。
在 SQL 中:
INSERT INTO visits (user, page, time) VALUES (?,?,NOW())
SELECT COUNT(DISTINCT user) FROM visits
WHERE page = ? AND time < NOW() - INTERVAL 10 SECONDS
您可以让用户通过定期提交 AJAX 请求来告诉服务器“我仍在查看”(或者在您的页面上有一个小的
iframe
,它每隔几秒就会重新加载一次,无需 JavaScript)。
关于php - 检测在线用户 : PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4418951/