基本上让会话持续 10 分钟,并且UPDATE
在每个页面加载时发送一个简单的内容并不是什么大不了的事。我可以向你保证,还有比这更糟糕的方法来超载你的数据库。例如,每次您需要用户的值时,每次都从数据库中提取它,而不是通过 cookie 或全局值存储所有值。
不必担心这种方法,因为每个会话只需要多 1 个命令。一些代码可以在程序员没有意识到的情况下对每个页面请求运行 25 个不必要的查询。
如果你想知道有多少在线,只需通过 cron 运行它:
$str_time = date('Y-m-d H:i:s', strtotime('-10 Minutes'));
$query = $this->db->query("
SELECT COUNT(*) AS online
FROM users
WHERE last_online >= ?
", array($str_time));
if ($query->num_rows())
$int_online = $query->row()->online;
else $int_online = 0;
// Save into database, .json file or whatever