我的程序需要检测用户的可见性,如果用户登录与否。我把信息放在数据库里
这里的伪代码:
如果用户点击“LOGIN”我将用户信息更新为 ONLINE = TRUE;
否则,如果用户单击“注销”,我将用户信息更新为 ONLINE = FALSE;
我的问题是:如何在不单击“注销”的情况下检测用户是否离开网站或关闭计算机
谢谢最美好的祝愿
您可以通过跟踪用户的最后活动并在用户在最后一分钟内有活动时简单地在线显示用户来做到这一点。
除此之外,您可以使用 JavaScript 进行轮询机制,以每分钟左右更新此值,以便用户通过使用 JavaScript 发送请求来打开网页。
您无法仅在服务器端检测用户活动。因为如果用户刚刚登录,它什么也不会说:他可以在下一秒清除 cookie 并再次登录,而且越来越多。
正如我所看到的,您需要在客户端有一些 js 代码,如果每 N 秒会向服务器发出请求:用户仍在登录并使用当前浏览器页面和/或执行某些操作。一旦服务器没有来自某个用户的请求,例如 5xN 秒 - 您可以将该用户标记为非活动/离线