Gateway::getUidByClientId

说明:

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

范例

  1. use \GatewayWorker\Lib\Gateway;
  2. class Events
  3. {
  4. ...
  5. public static function onMessage($client_id, $message)
  6. {
  7. Gateway::bindUid($client_id, 123);
  8. var_export(Gateway::getUidByClientId($client_id));
  9. }
  10. ...
  11. }

输出类似

  1. 123