php/JQuery中的用户联机状态

php/JQuery中的用户联机状态,php,jquery,Php,Jquery,我有一个网站,我想显示用户在线状态。目前我正在使用JQuery函数更新数据库,并在每5秒钟内获取联机状态。以下是功能: setInterval(function() { update_online_status(); },5000); 有没有更好的解决方案,这样我就不需要处理数据库,比如会话或cookie。我想这个解决方案,以扩大网站 如果只是检查当前用户,那么会话和cookie变量就可以工作了 但我假设你正在检查其他用户的在线状态。在这种情况下,您有最好的解决方案。只要试着找到一个好的更新

我有一个网站,我想显示用户在线状态。目前我正在使用JQuery函数更新数据库,并在每5秒钟内获取联机状态。以下是功能:

setInterval(function() { 
update_online_status();
},5000);

有没有更好的解决方案,这样我就不需要处理数据库,比如会话或cookie。我想这个解决方案,以扩大网站

如果只是检查当前用户,那么会话和cookie变量就可以工作了

但我假设你正在检查其他用户的在线状态。在这种情况下,您有最好的解决方案。只要试着找到一个好的更新间隔(我喜欢5000,就像你已经有了)。使用会话和cookie变量仍然需要数据库交互,因为您无法直接了解其他用户

也就是说,要更新当前用户信息,您不需要在任何时间间隔进行检查;您只需要监听用户何时登录或注销,并在此时调用数据库交互


这是如何登录/注销的。我在登录时更新数据库,以便其他用户可以使用。当他们注销时也会这样做。我使用ajax来实现流畅和无阻塞的过渡。

如果用户没有单击注销,该怎么办。只需关闭浏览器?您也可以使用jQuery检查。检查如果用户直接重新启动机器。。。如果没有任何事件,在这种情况下,我不知道操作系统是否会为每个应用程序调用quit函数(这取决于它是哪个操作系统),但它可能会处理它。这与其说是客户端通信,不如说是服务器端通信。我必须考虑如何最好地做到这一点。对于没有显式注销或无法捕获unload()事件的用户,我过去使用过一种设置,记录用户与服务器的最后一次交互时间,并在服务器端运行一个cron作业,定期检查该时间并手动“注销”如果在一段时间后未记录任何活动,则返回用户服务器端。