workman用户组

31 篇文章 0 订阅

关于用户分组
s o c k e t − > o n ( ′ l o g i n ′ , f u n c t i o n ( socket->on('login', function ( socket>on(login,function(uid)use($socket){
global $uidConnectionMap;
global $db;
u i d 1 = e x p l o d e ( ′ , ′ , uid1 = explode(',', uid1=explode(,,uid);
KaTeX parse error: Expected 'EOF', got '\Workerman' at position 10: db = new \̲W̲o̲r̲k̲e̲r̲m̲a̲n̲\MySQL\Connecti…socket->uid)){
return;
}
// 更新对应uid的在线数据
u i d = ( s t r i n g ) uid = (string) uid=(string)uid;
if(!isset( u i d C o n n e c t i o n M a p [ uidConnectionMap[ uidConnectionMap[uid]))
{
u i d C o n n e c t i o n M a p [ uidConnectionMap[ uidConnectionMap[uid] = 0;
}
// 这个uid有++ u i d C o n n e c t i o n M a p [ uidConnectionMap[ uidConnectionMap[uid]个socket连接
++ u i d C o n n e c t i o n M a p [ uidConnectionMap[ uidConnectionMap[uid];

// 将这个连接加入到uid分组,方便针对uid推送数据
$socket->join($uid1[1]);
$socket->uid = $uid;
// 更新这个socket对应页面的在线数据
$socket->to($uid)->emit('update_online_count',$uidConnectionMap[$uid]);

});
这是我监控登陆的函数,首先我登陆传过来的 u i d 是 一 个 字 符 串 , 格 式 是 1 ( 用 户 I D ) , 5 t ( 房 间 I D , 要 用 来 当 做 组 名 ) , 想 问 的 是 , j o i n 这 个 是 加 入 组 吧 , 组 名 是 我 传 的 uid是一个字符串,格式是1(用户ID),5t(房间ID,要用来当做组名),想问的是,join这个是加入组吧,组名是我传的 uid1ID,5t(ID),joinuid1[1],也就是5t,那下面的 $socket->uid = $uid;是做什么用的,我想给房间5t发送消息是成功的,我想给单独的一个uid也就是1,5t发送消息,显示OK,但是在实际上并没有收到,感觉对这个分组还不是很理解,求各位大佬帮帮忙

以下是一些网友的回答:
首先我是加了一个 s o c k e t − > j o i n ( socket->join( socket>join(uid1[0]);
也就是把用户ID也当成一个组,然后发送时发送这个 u i d 1 [ 0 ] , 也 就 是 用 户 I D 就 能 单 独 给 这 个 用 户 发 送 。 j o i n 是 加 入 组 , uid1[ 0],也就是用户ID就能单独给这个用户发送。join是加入组, uid1[0],IDjoinsocket->uid = $uid,这个就不是很理解了

$socket->uid = u i d 是 记 录 下 当 前 这 个 uid 是记录下当前这个 uidsocket是属于哪个uid,如果这个 s o c k e t 断 开 , 则 需 要 把 它 从 socket断开,则需要把它从 socketuidConnectionMap[$uid]删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值