swoole 里面的事件绑定怎么理解

swoole on函数事件绑定的理解

public function run_pre()
    {
        set_error_handler(array($this, 'error_handler'));

        $serv = new swoole_http_server($this->host, $this->port);
        $serv->set($this->setargv);
        $serv->on('Start', array($this, 'onStart'));
        $serv->on('ManagerStart', array($this, 'onManagerStart'));
        $serv->on('WorkerStart', array($this, 'onWorkerStart'));
        $serv->on('WorkerError', array($this, 'onWorkerError'));
        $serv->on('Request', array($this, 'onRequest'));
        return $serv;
    }

    function run()
    {
        $serv = $this->run_pre();
        $serv->start();
    }

    public function onStart($serv)
    {
       //代码执行
    }

里面的$serv->on('Start', array($this, 'onStart'));怎么调用public function onStart($serv)

烙印99
浏览 458回答 5
5回答

江户川乱折腾

只能打个比方的回答,具体的执行是需要看swoole源码才能说明的。 $server 是 SwooleServer 对象,就好比电话线路 用户可以在电话线路上,接入电话座机,就好比调用 $server->on() 接入的时候,需要告诉电话线路,你的座机号码是什么 也就是 $server->on('event') 当有电话进来的时候,你就可以接电话,处理电话内容了,也就是 $server->on('event', function(){处理中心}) $serv->on('Start', array($this, 'onStart')); 上述代码,表示的就是,当server接受到start事件时,调用 $this对象的 onStart 方法(function)

守着星空守着你

$serv->on的第二个参数是个callable, callable可以是用户自定义函数,PHP内建函数,对象的方法,类的静态方法。

繁花不似锦

是否相当于是否这样的呢? $serv->on('Start', function($ws,$fd){ $this->onStart($ws,$fd); }); function onStart($ws,$fd){ //TODO }

德玛西亚99

swoole是以事件驱动的框架
打开App,查看更多内容
随时随地看视频慕课网APP