剛接觸GatewayWorker,請(qǐng)教大神,訪客離線如何向客服端發(fā)送離線信息,好讓客服端做對(duì)應(yīng)數(shù)據(jù)清楚操作?
public static function onMessage($client_id, $message){
$message_data = json_decode($message,true);
if(!$message_data){
return;
}
switch($message_data['type']){
case "bind-user"; //訪客綁定uid
$userid = $message_data['userid'];//訪客id
$kefuid = $message_data['kefuid'];//客服id
//將訪客userid與client_id綁定
Gateway::bindUid($client_id,$userid);
$text = "已連接";
$data = [
'type'=>"text",
'userid'=>$userid,
'chat'=>$text,
];
//提示訪客已連接
Gateway::sendToUid($userid,json_encode($data));
$url = $message_data['url'];
$ref = $message_data['ref'];
$ip = $message_data['ip'];
$city = $message_data['city'];
$data = [
'type'=>"new-user-in", //新訪客
'fromid'=>$fromid,
'ref'=>$ref,
'ip'=>$ip,
'city'=>$city,
'time'=> time()
];
//向客服發(fā)送新訪客信息
Gateway::sendToUid($kefuid,json_encode($data));
return;
case "msg"; //轉(zhuǎn)發(fā)消息
$text = nl2br(htmlspecialchars($message_data['data']));
$userid = $message_data['userid'];
$kefuid = $message_data['kefuid'];
$data = [
'type'=>"text",
'userid'=>$userid,
'kefuid'=>$kefuid,
'chat'=>$text,
'time'=> time()
];
//檢測(cè)否在線后發(fā)送消息------------------
if(Gateway::isUidOnline($kefuid)){
Gateway::sendToUid($kfuid,json_encode($data));
}
else
{
$data = [
'type'=>"kefu-out",
'kefuid'=>$kefuid,
];
Gateway::sendToUid($userid,json_encode($data));
}
return;
}// switch結(jié)束
}//onMessage結(jié)束
public static function onClose($client_id){
$data = [
'type'=>"userid-out",
'kefuid'=>$kefuid,
];
Gateway::sendToUid($kefuid,json_encode($data));
//請(qǐng)問(wèn)訪客離線如何把userid發(fā)送給kefuid,讓客服端根據(jù)userid刪除對(duì)應(yīng)userid的訪客軌跡數(shù)據(jù)?
}//onClose結(jié)束
已解決,需要在新訪客綁定$uid的同時(shí)設(shè)置session,然后再onCloser觸發(fā)的時(shí)候直接從session取出保存數(shù)組。
。。。。。。
Gateway::bindUid($client_id,$fromid);
//保存session數(shù)組
Gateway::setSession($client_id, array('user'=>$user,'kefu'=>$kefu));
//將訪客userid與client_id綁定
Gateway::bindUid($client_id,$userid);
。。。。。。
public static function onClose($client_id){
$kefu = $_SESSION['kefu'];
$data = [
'type'=>"userid-out",
'user'=>$_SESSION['user'],
'kefu'=>$_SESSION['kefu']
];
Gateway::sendToUid($kefu,json_encode($data));
}