how to detect user is disconnected via PHP?
有没有办法检测用户是否与互联网断开连接? stackoverflow在您想发布问题时的方式。 我想不出有任何方法可以做到这一点。 有人可以对这个问题有所了解吗?
您可以在Windows关闭时将AJAX请求发送到PHP脚本:
1 2 3 | window.onbeforeunload = function(){ // Request goes here } |
另外,您可以使用websocket-technology(您可以使用phpDaemon)永久连接服务器,这样您就可以知道用户何时从互联网或您的站点断开连接,或者通过pexodicly(使用
我猜Stack Overflow使用AJAX,这是一个在浏览器内部客户端执行的JavaScript驱动程序。该ajax设置负责在例如发布新答案时通知用户,并使他们有机会在不重新加载整个页面的情况下加载所述新答案。
此构造有一种方法可以检测与服务器通信中的错误,并将其解释为用户断开连接,从而产生警告。
但是,这要求用户仍然打开浏览器。 JavaScript和AJAX中还有各种其他函数可以在用户关闭页面时执行某些操作,但它们都不被视为始终有效。毕竟没有银子弹。
从服务器端,可以监视用户客户端的AJAX的常量乒乓,并在此ping消失时执行某些操作。比如:用户在过去两分钟内每隔5秒钟就一直在ping我们,但是现在ping了这个ping。
这个问题的主要问题在于PHP的原理,每个页面基本上都是独立存在的。当获取请求时,页面被加载并创建,但是在请求结束时,当前页面实例被拒绝存在,就像每个变量丢失一样,而不是保存在别处(cookie,会话,数据库)。