绑定完UID跟clientid
然后获取clientid 数组是0
isUidOnline 也是返回0
不知道什么原因,跟环境和配置有关系么?
// 绑定关系
$_SESSION['id'] = $data['uid'];
Gateway::bindUid($sessionId, $data['uid']);
$temp = Gateway::getClientIdByUid($data['uid']);
$temp1 = Gateway::isUidOnline($data['uid'])
centos7 php7.1.33
代码贴全一点
$sessionId 是 浏览器传过来的字符串,uid 是 KF_83hdhfbd 这种字串 ,之前是好的,突然这样了...感觉跟环境有关系,但是找不出问题
导致我访客进来 isUidOnline 一直是0 查不到在线客服,后来我把 isUidOnline 直接放到客服登陆绑定UID的方法下面,也是0 .。然后就蒙了,PHP版本换了几个都不行
你先把跑一个demo看看,把$uid写死试试。
Gateway::bindUid(1111, 2222);
$temp = Gateway::getClientIdByUid(2222);
Gateway::sendToUid($data['uid'], json_encode([
'cmd' => 'init',
'data' => [
'code' => 0,
'data' => '',
'msg' => count($temp).'_77778888'.'login success_'.Gateway::isUidOnline(2222)
]
]));
写死也不成功 收到的是这个 疯了
0_77778888login success_0
https://www.workerman.net/doc/gateway-worker/bind-uid.html
Gateway::bindUid($client_id, $uid); 第一个参数是client_id,不是什么sessionId,111什么的。你传的参数本身就是错的。建议看下文档再开发,好歹也把文档的例子复制过来试下对比下
我只是做测试,client_id 对格式有要求么 ?
多看看文档啊。Gateway::bindUid第一个参数Gateway 内部自己生成Id就是那个16进制那一串字符串。不是你随便写的值。第二个参数才是你的自己绑定的用户id
搞定拉,workerman进程问题,每次重启没自动杀死,里面几十个重复的进程导致的 批量杀死就OK了
$sessionId和$data['uid']数据都没问题,就是bindUid无法绑定?