PHP聊天会话

时间:2012-10-14 07:22:48

标签: php jquery ajax

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

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

我被困住了。提前谢谢

2 个答案:

答案 0 :(得分:0)

或多或少jhonraymos所说的。如果这是一个基于PHP的聊天,那么你无法真正说出连接被强制关闭的时候。我想说,只需要某种方法来暂停聊天。

IE:如果客户端没有请求几分钟,或者可能长达几个小时,那么可以安全地假设它们已不再连接,然后您可以将聊天状态设置为0。 / p>

更新

抱歉,我没有看到你的新评论。看另一页...

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。

答案 1 :(得分:0)

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

然后使SetInterval每30秒更新一次状态= 1。

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