$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');
// 已经登录过了
if(isset($socket->uid)){
return;
}
// 更新对应uid的在线数据
$uid = (string)$uid;
if(!isset($uidConnectionMap))
{
$uidConnectionMap = 0;
}
// 这个uid有++$uidConnectionMap个socket连接
++$uidConnectionMap;
// 将这个连接加入到uid分组,方便针对uid推送数据
$socket->join($uid1);
$socket->uid = $uid;
// 更新这个socket对应页面的在线数据
$socket->to($uid)->emit('update_online_count',$uidConnectionMap);
});
请问怎么获取uid1房间的人数?uidConnectionMap获取的是全局的人数。
count($sender_io->nsps['/']->adapter->rooms[$uid1])
请问如何获取具体房间的全部成员?
请问这些API去哪里可以找到?
谢谢。
没这个api。我都是看源码。你可以自己用数组记录成员
$socket->on('disconnect', function () use($socket) {
if(!isset($socket->uid))
{
return;
}
global $uidConnectionMap, $sender_io;
if(--$uidConnectionMap[$socket->uid] <= 0)
{
unset($uidConnectionMap[$socket->uid]);
}
});
请问加入房间的uid可以通过这个方法删除么?