Skip to content

Gateway::getClientIdByUid

说明:

php
array Gateway::getClientIdByUid(mixed $uid);

返回一个数组,数组元素为与 uid 绑定的所有在线的 client_id。如果没有在线的 client_id 则返回一个空数组。

此方法可以判断一个 uid 是否在线。

注意:返回值为与 uid 绑定的所有在线的 client_id 数组。因为已经下线的 client_id 会自动与 uid 解绑,所以已经下线的 client_id 不会出现在返回值中。

参数

  • $uid

uid, 可以是数字或者字符串。

返回值

返回一个 client_id 的数组

注意:如果是客户端断网断电等极端情况掉线,客户端的 onClose 回调可能无法及时触发,参见 onClose 说明。也就是说对应客户端出现断网断电等极端掉线情况返回值中可能包含已经掉线的客户端 client_id。这种情况需要心跳来检测已经掉线的客户端。

范例

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

    public static function onMessage($client_id, $message)
    {
        // $message = '{"type":"get_client_id","uid":"xxxxx"}'
        $req_data = json_decode($message, true);
        var_export(Gateway::getClientIdByUid($req_data['uid']));
    }

    ...
}

输出类似

php
array(
    '7f00000108fc00000008',
    '7f00000108fc00000009'
)

基于 MIT 许可发布