0

我已经为我的客户网站构建了一个聊天脚本。用户登录后,我设置会话并通过将聊天状态设置为 1 来更新数据库中的表。一旦用户注销,我将聊天状态设置为 0,此外,如果用户关闭浏览器的选项卡聊天状态设置为 0,不再进行聊天。

这里的主要问题是如果用户的计算机关闭或电源被切断,如何检测用户无法聊天。或者即使用户打开一个新选项卡而不是关闭选项卡而是关闭浏览器?

我被困住了。先感谢您

4

2 回答 2

0

或多或少是 jhonraymos 所说的。如果这是一个基于 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。

于 2012-10-14T07:30:52.110 回答
0

只需使用 phpmyadmin 在 MYSQL 中创建一个事件,每 1 分钟使 status = 0(更新 login_table set status = '0')。

然后设置一个 SetInterval 以每 30 秒更新一次状态 = 1。

制作另一个 SetInterval 来检查 status = 1 并将所有内容检索到 DIV(这将显示在线用户。

于 2013-11-11T13:38:00.600 回答