是否可以使用其IP地址检查访问者是否仍在线?
我已经创建了一个javascript和php来检查访问者的IP地址,当他们使用onLoad和onBeforeUnload事件打开我的一个页面时。但在某些情况下,我的脚本无法检测访问者是否仍在打开我的网站。因为onBeforeUnload一直不可靠。
在这种情况下,我想知道是否有其他方法可以检测访问者是否还在线。
如果访问者仍然打开页面但没有阅读,因为他/她正在阅读其他网站或运行其他程序,我仍然会认为他/她在线。
如果访问者关闭了浏览器,但我的脚本无法检测到其卸载事件,我想知道他/她是否还在线。
PHP或javascript对我来说没问题。
答案 0 :(得分:10)
您应该创建通过ajax“ping”(发送请求,可能为空白)服务器的JavaScript代码。此请求应该“标记”在PHP中活动的用户(可能在数据库中,或您使用的任何存储方法)。您可以参考您的存储空间以查看用户是否在线。
或者,您可以在没有AJAX的情况下使用它,但是您需要在站点中“ping”每个页面请求(每次遍历页面)。通过这种方式,只要用户登录,PHP就会“标记”每个访问过的页面。
如果该用户被“标记”活动超过某个阈值(例如30分钟),请将其视为离线。
您不需要此功能的IP地址。您只需知道该用户仍被标记为在线。
答案 1 :(得分:2)
如果访问者关闭了浏览器,但我的脚本无法检测到其卸载事件,我想知道他/她是否还在线。
这是不可能的。
而且我怀疑是否有任何理由这样做。
答案 2 :(得分:2)
据我所知,最可靠的方法是使用now.js作为Node。您可以设置一个简单的服务器,并监听连接和断开连接。触发后,您可以将您需要的数据发送到您的php,或者在节点中处理它。