php监控网页数据变化,PHP网站监控用户信息状态实现

1、后台方法读取状态并json返回到前台

public function getState(){

$m_user =

M('m_user');

if($_REQUEST['id']){

$m_user_list =

$m_user->where('d_id =

%d',$_REQUEST['id'])->field('user_id,exten_state,last_time,last_ip')->select();

}else{

$m_user_list =

$m_user->field('user_id,exten_state,last_time,last_ip')->select();

}

$idleNum = 0;//空闲

$inuseNum = 0;//通话中

$dndNum = 0;//示忙

$otherNum =

0;//其他

if

($onlineNum) {

foreach ($m_user_list as $key =>

$val) {

switch

($val['exten_state']) {

case 'idle':

$idleNum++;

$detail = '空闲';

break;

case 'ringing':

$inuseNum++;

$detail = '通话中';

break;

case 'inuse':

$inuseNum++;

$detail = '通话中';

break;

case 'dnd':

$dndNum++;

$detail =

'离线';

break;

case 'busy':

$inuseNum++;

$detail = '通话中';

break;

default:

$otherNum++;

break;

}

$user_list[$key] =

array(

'user_id' =>

$val['user_id'],

'exten_state' =>

$val['exten_state'],

'extenStateDetail' =>

$detail,

'last_time' =>

getdifftime($val['last_time']),

'last_ip' => $val['last_ip']

);

}

}

$arr_r = array(

"result" => 1,

"data" => $user_list,

//统计各个状态人员数量​。并返回到前台

"onlineNum" =>

$onlineNum,

'idleNum' => $idleNum,

'inuseNum' =>

$inuseNum,

'dndNum' => $dndNum,

'otherNum' => $otherNum

);

echo

json_encode($arr_r);

}

​2、前台接收值,并根据返回状态显示在页面,js每秒执行一次请求,检测用户状态

function load_cti(){

$.getJSON('{:U("monitor/getState")}'+'&id={$id}'+'&t='

+ Math.random(1000),function(data){

if(data.result == "1"){

if(data.data){

$.each(data.data, function(i,

item) {

$("#td_user_id_"+item['user_id']).html(item['extenStateDetail']);

});

}

}

});

setTimeout("load_cti();",1000);

}

load_cti();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值