Gateway::getUidByClientId

说明:

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键值是否存在。

范例

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

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

    ...
}

输出类似

123
编辑于2024-03-13 17:37:33 完善本页 +发起讨论
赞助商
×