绑定 clientid与UID不成功

tangkan

问题描述

绑定完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'])

操作系统环境及workerman/webman等具体版本

centos7 php7.1.33

396 2 0
2个回答

10bang

你这个$sessionId是什么?
void Gateway::bindUid(string $client_id, mixed $uid);

代码贴全一点

  • tangkan 2024-08-11

    $sessionId 是 浏览器传过来的字符串,uid 是 KF_83hdhfbd 这种字串 ,之前是好的,突然这样了...感觉跟环境有关系,但是找不出问题

  • tangkan 2024-08-11

    导致我访客进来 isUidOnline 一直是0 查不到在线客服,后来我把 isUidOnline 直接放到客服登陆绑定UID的方法下面,也是0 .。然后就蒙了,PHP版本换了几个都不行

  • 故人重来 2024-08-11

    你先把跑一个demo看看,把$uid写死试试。

  • tangkan 2024-08-13

    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

  • six 2024-08-13

    https://www.workerman.net/doc/gateway-worker/bind-uid.html
    Gateway::bindUid($client_id, $uid); 第一个参数是client_id,不是什么sessionId,111什么的。你传的参数本身就是错的。建议看下文档再开发,好歹也把文档的例子复制过来试下对比下

  • tangkan 2024-08-13

    我只是做测试,client_id 对格式有要求么 ?

  • 故人重来 2024-08-13

    多看看文档啊。Gateway::bindUid第一个参数Gateway 内部自己生成Id就是那个16进制那一串字符串。不是你随便写的值。第二个参数才是你的自己绑定的用户id

  • tangkan 2024-08-13

    搞定拉,workerman进程问题,每次重启没自动杀死,里面几十个重复的进程导致的 批量杀死就OK了

小W

Gateway::bindUid($sessionId, $data['uid']);

$sessionId和$data['uid']数据都没问题,就是bindUid无法绑定?

  • 暂无评论
×
🔝