GatewayClient 调用Gateway::closeClient($clientId)报错

阳光

问题描述

报错:Call to undefined method GatewayClient\Gateway::closeCurrentClient()
发现closeClient下面有调用closeCurrentClient方法,但该方法确实没有找到

程序代码或配置

public static function closeClient($client_id, $message = null)
    {
        if ($client_id === Context::$client_id) {
            return static::closeCurrentClient($message);//NOT FOUND
        } // 不是发给当前用户则使用存储中的地址
        else {
            $address_data = Context::clientIdToAddress($client_id);
            if (!$address_data) {
                return false;
            }
            $address      = long2ip($address_data['local_ip']) . ":{$address_data['local_port']}";
            return static::kickAddress($address, $address_data['connection_id'], $message);
        }
    }

操作系统环境及workerman/webman等具体版本

不知道怎么看版本

138 2 0
2个回答

latin

你调用错类了,调用 GatewayClient 上去了,按照文档应该是 use \GatewayWorker\Lib\Gateway;

  • 阳光 8小时前

    我标题写错了,是GatewayClient

JustForFun

正常来讲,你用Gateway::closeClient($clientId)是走不到这个static::closeCurrentClient($message)逻辑的,当然也不会有报错。所以很好奇你到底在调用之前干嘛了,该不会是先调用了Context::$client_id = $clientId了吧?

  • 阳光 6小时前

    $clinentId传进去的是null

  • JustForFun 6小时前

    呃,你传个 null 进去干嘛?null == null 可不就出事了?调用之前做校验

×
🔝