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']=uid
, Events::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