目前我正在使用此 SQL 来检查用户是否已连接:
date_add(last_activity, INTERVAL 3 MINUTE) > NOW()
这是被动的,只会在页面加载时触发。
我想做的是一个系统,它可以检查用户在给定的时间跨度内是否保持连接并给予他们奖励积分。
您有什么建议可以实现这一目标?使用轮询或其他方法?
最佳答案
您需要使用某种 java 脚本,它会以大约 1 分钟的间隔向您的站点报告使用 ajax 的事件。您需要实现某种机制来检查用户是否处于事件状态,例如鼠标是否移动或页面是否滚动,因为有些用户可以长时间使用同一页面。如果该页面自上一分钟以来未被使用(应该是 javascript 中的全局变量,每次鼠标移动时设置为 true,每次发送消息时设置为 false),则不会发送消息。
当您在服务器中收到 ajax 通知时,您检查最后一个 ajax 通知(应该存储在数据库中)和当前通知之间的时间,如果它小于一个间隔(可能是 2 分钟)则给用户点数。
关于php - 计算用户连接到站点的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6044368/