在php中无限循环检查客户端超时

时间:2017-01-26 12:58:27

标签: php loops

我正在构建一个应用程序,每隔x秒就会进行一次检查,看看用户是否无法访问,以确定用户是否不再在线。在断开网络连接之前用户不打算关闭应用程序,发送“我离线”消息的可能性很高,所以这就是原因。 用户在mySQL数据库中,我知道有一个事件可以在那里被解雇。不幸的是我目前的托管计划不允许我这样做,所以我想知道在php中设置它是否有任何意义:

在内部进行无限循环,每隔x秒检查一次被标记为在线的用户的近期活动。用户经常自动ping服务器,然后存储最新的ping时间。

我觉得这不是一个好方法,并且运行循环实际上只是通过调用它来发送一些if if = blahblah然后退出循环命令来停止?

1 个答案:

答案 0 :(得分:2)

两个想法,不涉及循环;)

  1. 您可以让用户通过javascript(setInterval)发送ping。这将从浏览器向服务器发送请求。在服务器上,php脚本/路由只会更新用户表上的'date_last_ping'。每当您查询用户表时,您可以通过检查ping的持续时间来确定它们是否在线。

  2. 使用websockets,这可能是一种更具伸缩性的方式来实现这个