Gateway::getUidByClientId 获取绑定uid 返回为空。

qiqi

登录的时候client_id绑定了 uid, 退出的使用 Gateway::getUidByClientId 无法获取uid

onClose 方法时,我想告诉前台那个用户UI的退出房间,但是无法获取uid ,发现uid 已经删除。

1106 1 0
1个回答

walkor

https://www.workerman.net/doc/gateway-worker/get-uid-by-client-id.html#%E6%B3%A8%E6%84%8F
这个手册有写,onClose的时候无法Gateway::getUidByClientId($client_id)获得uid。因为连接断开后gateway将连接的相关数据都销毁了,调用接口找不到数据。

业务中最好不要调用Gateway::getUidByClientId($client_id),用session来记录uid性能最好。

  • qiqi 2021-12-23

    那我网页关闭时,我如何告诉前台,,某人id推出.

  • walkor 2021-12-23

    用session记录uid,退出的时候就知道那个uid退出了,你看手册。

  • 小七他哥 2022-09-06

    看了手册,根据大佬的意思,在绑定用户id的后面紧接着写了:

    $_SESSION[$client_id] = $uid;

    然后在 onClose 方法内如下打印了:

    public static function onClose($client_id) {
    echo '<pre>-----------';print_r($_SESSION);
    ......
    }

    总感觉这样写着好别扭,大佬你为何不以 Gateway 的形式帮大家实现这个功能呢?毕竟这个需求太广泛了。

    @walkor

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