PHP AJAX - 统计在线用户

时间:2016-02-02 16:13:46

标签: php ajax

我想在使用php的管理页面中没有在线用户 我努力了 这是我的用户主页:home.php

{function updatetime(){
    $.ajax({
        url:'update-status.php',
        success:function(data){

        }
    });
}
setInterval(updatetime,30000);}

更新status.php

$a=$_SESSION['user'];
$p="update user set logg='".time()."' where userid='$a'";
 mysqli_query($con,$p);

在管理页面中:adhome.php

{function online()
{
    $.ajax({
        url:'online.php',
        success:function(data){
            $(#rcon).html(data);
        }
    });
}
setInterval(online,30000);}

online.php:

$a=$_SESSION['user'];

    $m1="SELECT * from user where userid='$a'";

         echo $m2=mysqli_query($con,$m1) or die(mysqli_error($con));
          $m3=mysqli_num_rows($m2);
          $m4=mysqli_fetch_array($m3) or die(mysqli_error($con));
          if($m3==1)
           {
            $b=time()-$m4['logg'];
            if($b<(120))
                {
                $un= $m4['uname'];
                echo '<tr><td>'.$un.'</td></tr>';
                }
            }enter code here

它不会显示错误 我没有在管理页面中获取用户bt db正在更新 还请解释时间() - $ m4 [&#39; logg&#39;]。我搜索了很多,但他们并不满意我。

1 个答案:

答案 0 :(得分:-1)

PHP和Ajax是计算当前在线用户的一个坏主意,因为它可以创建高CPU和RAM usag。

更好的解决方案是带有socket.io的node.js。 (http://socket.io

使用socket.io,您可以创建一个非常快速的在线用户计数器,而无需使用任何大的服务器和Bandwith。

统计: Node.js和Socket.io可以轻松处理超过5.000个连接,带有大约12MB / s带宽和16GB RAM以及一个Inter I7处理器