關(guān)于用戶分組
$socket->on('login', function ($uid)use($socket){
global $uidConnectionMap;
global $db;
$uid1 = explode(',',$uid);
$db = new \Workerman\MySQL\Connection('127.0.0.1', '3306', 'root', 'root', 'luck28');
// 已經(jīng)登錄過(guò)了
if(isset($socket->uid)){
return;
}
// 更新對(duì)應(yīng)uid的在線數(shù)據(jù)
$uid = (string)$uid;
if(!isset($uidConnectionMap))
{
$uidConnectionMap = 0;
}
// 這個(gè)uid有++$uidConnectionMap個(gè)socket連接
++$uidConnectionMap;
// 將這個(gè)連接加入到uid分組,方便針對(duì)uid推送數(shù)據(jù)
$socket->join($uid1);
$socket->uid = $uid;
// 更新這個(gè)socket對(duì)應(yīng)頁(yè)面的在線數(shù)據(jù)
$socket->to($uid)->emit('update_online_count',$uidConnectionMap);
});
這是我監(jiān)控登陸的函數(shù),首先我登陸傳過(guò)來(lái)的$uid是一個(gè)字符串,格式是1(用戶ID),5t(房間ID,要用來(lái)當(dāng)做組名),想問(wèn)的是,join這個(gè)是加入組吧,組名是我傳的$uid1,也就是5t,那下面的 $socket->uid = $uid;是做什么用的,我想給房間5t發(fā)送消息是成功的,我想給單獨(dú)的一個(gè)uid也就是1,5t發(fā)送消息,顯示OK,但是在實(shí)際上并沒(méi)有收到,感覺(jué)對(duì)這個(gè)分組還不是很理解,求各位大佬幫幫忙
先感謝walkor大神,問(wèn)題是解決了,但是不知道有沒(méi)有理解錯(cuò)。首先我是加了一個(gè)$socket->join($uid1);
也就是把用戶ID也當(dāng)成一個(gè)組,然后發(fā)送時(shí)發(fā)送這個(gè)$uid1,也就是用戶ID就能單獨(dú)給這個(gè)用戶發(fā)送。join是加入組,$socket->uid = $uid,這個(gè)就不是很理解了