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