大家好,我第一次用這個系統(tǒng)。現(xiàn)在的需求是:A怎么將信息只推送給B,或者系統(tǒng)指定給B推送信息。能不能根據(jù)$socket->id單獨(dú)去推送信息?下面是代碼,請問如何去實(shí)現(xiàn)?
$m = new Memcache;
$m->connect("127.0.0.1",11211);
$io = new SocketIO(2020);
$io->on('connection', function($socket)use($io){
//接收連接人員數(shù)據(jù)
$socket->on('senduser', function($data)use($socket){
global $m;
$sortarr = $m->get('sorket');
if($sortarr){
if(array_key_exists($data,$sortarr)){
$sortarr[$data]["sortid"] = $socket->id;
}else{
$sortarr[$data] = $socket->id;
}
}else{
$sortarr = array("$data" => $socket->id);
}
$m->set('sorket',$sortarr,0,0);
});
//接收數(shù)據(jù),并發(fā)送到指定人員
$socket->on('sendmsg', function ($data)use($socket){
global $m;
if($m->get('sorket')){
$sortarr = $m->get('sorket');
$uid = $data['uid'];
if(array_key_exists($uid,$sortarr)){
//$socket->emit('getmsg',$sortarr[$uid]);
$socket->to($sortarr[$uid])->emit('getmsg',$data["message"]);
}
}
});
});
//向特定的用戶發(fā)送消息:注意需要將業(yè)務(wù)id 和 $socket->id 進(jìn)行映射
$io->to($socket->id)->emit();
Array ( [23] => d669242e43abd74104ce6c48 [29] => e4916a3043abd74101467d91 ),這個是我存在Memcache里的數(shù)組,23是用戶ID,后面對應(yīng)的是每次用戶連接時獲取的$socket->id。你的意思是用對應(yīng)的$socket->id去推送嗎?$arr=Array ( [23] => d669242e43abd74104ce6c48 [29] => e4916a3043abd74101467d91 ),$io->to($arr[23])->emit();這樣去做嗎。這樣我試過,沒有成功。