GatewayWorker的onMessage问题

ChuckWe

在这个回调中一次请求过来到return出去后临时变量会自动销毁吗
因为不想用switch在里面疯狂添加字段
可以在里面做类似路由的形式 实例化不同类然后掉不同方法吗

2314 1 0
1个回答

six

临时变量本来就会自动销毁的,这个是php自身的机制。

不愿意写switch的话,可以这样。

class Events {
    public static function onMessage($client_id, $data)
    {
        // $data是客户端传来的请求,json格式类似 {"class":"User", "method":"login", "params":{"username":"abc","password":"123456"}}
        $package = json_decode($data, true);
        $class = new $package['class'];
        $method = $package['method'];
        $params = $package['params'];
        call_user_func_array([$class, $method], $params);
    }
}

仅仅一个思路,上面没有做安全检查,比如$data是否是json,传递的类方法安全检查。

  • ChuckWe 2020-01-13

    已经是类似实现了,之前纠结的就是这个自动销毁。上来确认下,谢谢答复。

年代过于久远,无法发表回答
🔝