$socket->id 映射 ID为16 的 前端用户 结果 id为0 ??这样要如何正确映射?

唐钰小宝

$socket->id = $data['uid'];

emitting packet with ack id 0

$data['uid'] 为16 ? 映射完毕的ID 应该为16 才对??可是出来结果是0

如何正确映射用户ID 呢?

2234 1 0
1个回答

six

看了下代码,$socket->id 不是用来做uid映射的,是socket.io内部标记连接id用的,更改它没有意义。
如果你要给你自己定义的uid发数据,先用$socket->join($uid);加入分组,然后就可以在需要给这个uid发数据的时候调用 $io->to($uid)->emit('event name', $data); 就可以给这个uid发数据了。

手册 https://github.com/walkor/phpsocket.io/tree/master/docs/zh#%E5%90%91%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%8F%91%E9%80%81%E4%BA%8B%E4%BB%B6%E7%9A%84%E5%90%84%E7%A7%8D%E6%96%B9%E6%B3%95

  • phpcreeper 2020-08-09

    给题主私下说了几百遍另外一种方法就是:单发to()参数可以取值$socket->id,让后将业务uid和$socket->id做个映射就完事儿了,然后死活搞不清这么个事儿,折腾半天还是拿业务uid赋值覆盖去$socket->id的值。

年代过于久远,无法发表回答
×
🔝