php - 检测在线用户 : PHP

标签 php

我正在尝试通过 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/

相关文章:

javascript - 单击一个按钮后禁用 2 个按钮

php - 在 PHP 中分解一行文本,没有任何可辨别的断点

php - iOS APN Php 无法连接

javascript - PHP Cookies 包含更少的数据

php - 正则表达式 24 小时时间

php - 如何在数组 php 中一次找到多个值

php - 在 PHP 中检查图像高度/宽度

php - bash.sh 运行 cron 的权限被拒绝

php - 在 PHP 中用不可破坏的空间替换特定空间

c# - 尝试在 C# 中重现 PHP 的 pack ("H*") 函数