PHP聊天会话
我已经为我的客户网站建立了一个聊天脚本。一旦用户登录,我会设置一个会话,并通过将聊天状态设置为1来更新数据库中的表。一旦用户注销,我将聊天状态设置为0,此外,如果用户关闭浏览器的选项卡,聊天状态将设置为0,不再进行聊天 这里的主要问题是,如果用户的计算机被关闭或电源被切断,如何检测用户是否无法聊天。或者,即使用户打开一个新选项卡,而不是关闭该选项卡,他也会关闭浏览器PHP聊天会话,php,jquery,ajax,Php,Jquery,Ajax,我已经为我的客户网站建立了一个聊天脚本。一旦用户登录,我会设置一个会话,并通过将聊天状态设置为1来更新数据库中的表。一旦用户注销,我将聊天状态设置为0,此外,如果用户关闭浏览器的选项卡,聊天状态将设置为0,不再进行聊天 这里的主要问题是,如果用户的计算机被关闭或电源被切断,如何检测用户是否无法聊天。或者,即使用户打开一个新选项卡,而不是关闭该选项卡,他也会关闭浏览器 我被卡住了。事先多谢你约翰雷莫斯所说的话。如果这是一个基于PHP的聊天,那么您就无法很容易地判断连接何时被强制关闭。我会说,只要有
我被卡住了。事先多谢你约翰雷莫斯所说的话。如果这是一个基于PHP的聊天,那么您就无法很容易地判断连接何时被强制关闭。我会说,只要有某种方法让聊天超时就行了 IE:如果客户端在几分钟内没有请求,或者可能长达几小时,那么可以安全地假设它们不再连接,然后您可以将聊天状态设置为0 更新: 抱歉,我没有看到你的新评论。看另一页
session_start();
// set timeout period in seconds
$inactive = 600;
// check to see if $_SESSION['timeout'] is set
if(isset($_SESSION['timeout']) ) {
$session_life = time() - $_SESSION['timeout'];
if($session_life > $inactive)
{ session_destroy(); header("Location: logoutpage.php"); }
}
$_SESSION['timeout'] = time();
再次道歉,仍然习惯stackoverflow。只需在MYSQL中使用phpmyadmin创建一个事件,每1分钟将status设置为0(更新login\u table set status=“0”) 然后每隔30秒设置一次更新状态=1的设置间隔
再进行一次设置间隔,检查status=1并检索all to DIV(这将显示在线用户。修复此评论,使其看起来有点花哨。再次抱歉。(只是修复以前答案的通知)这就是我想问的。我们如何在时间限制后执行一些代码?我的意思是如何执行我的查询以在时间限制后将聊天状态设置为0?你能给我一个例子吗…好的,我看到你在上面的评论…检查上面的代码是否可以解决诸如internet连接丢失、电源关闭等问题…因为它是PHP端,它应该可以工作好的。这纯粹是服务器端的。不过,我不确定它对服务器有什么影响。