Skip to content

Gateway::getUidByClientId

说明:

php
string Gateway::getUidByClientId(string $client_id);

(要求Gateway版本>=3.0.8) 如何查看 Gateway 版本

返回 client_id 绑定的 uid,如果 client_id 没有绑定 uid,则返回 null。

参数

  • $client_id

字符串 client_id。

返回值

返回字符串或者数字,返回类型取决于之前执行 bindUid 绑定的 uid 的数据类型

注意

在 onClose 回调中无法使用此接口,解决方法是 bindUid 时记录一个 $_SESSION['uid']=uidEvents::onClose 的时候用 $_SESSION['uid'] 来获取 uid

但是仍然要注意 $_SESSION['uid'] 一般是在 onMessage/onWebSocketConnect 里赋值的,但是 onMessage/onWebSocketConnect 在 onClose 调用前不一定会被调用,比如客户端发起了 tcp 连接后未发送任何数据然后关闭了连接,类似这种情况服务端 Events ::onClose 回调中不会有 $_SESSION['uid'] 值,所以 Events::onClose 中获取 $_SESSION['uid'] 值需要判断下 uid 键值是否存在。

范例

php
use \GatewayWorker\Lib\Gateway;
class Events
{
    ...

    public static function onMessage($client_id, $message)
    {
        Gateway::bindUid($client_id, 123);
        var_export(Gateway::getUidByClientId($client_id));
    }

    ...
}

输出类似

php
123

基于 MIT 许可发布