如何使用 Ajax 持续检查用户是否在线(无需重新加载页面)?有时,用户在两个不同的选项卡中打开他的个人资料,并且他从其中一个选项卡注销,因此另一个选项卡应立即显示登录页面...
最佳答案
至于检查此人是否在线,您可以使用多种技术,例如长轮询、Web 套接字,最简单的一种是定期检查运行一个脚本的服务器。
对于其他部分,它可以在服务器端完成,您需要维护某种内存中映射(如果您只有一个网络服务器,否则您必须存储在数据库中),其中包含登录的用户 ID 和每当有人登录时,客户端代码都会生成一些随 secret 钥
Map<string,List<string>> tracker = new Map<string,List<string>>();
每当您登录时,通过在 map 中查找跟踪器的 ID 来获取跟踪器的新随 secret 钥
tracker[userId].Add(random);
每当用户从任何地方注销时,都会清除跟踪器 key
tracker.remove(userId)
现在,当我们从 AJAX 进行定期调用时,如果跟踪器映射不包含 userId,则意味着他已从某个位置注销。
if(!tracker.Contains(userId))
//user is logged out from some other place
关于javascript - 检查用户是否在线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36051865/