Swoole回调

使用CatMicro框架的程序必须实现一个Callback类,并继承CatMicro提供的一个BaseCallback虚基类。示例代码如下:

// 位于 app/callback 目录下
namespace app\callback;

class MainServer extends BaseCallback
{
    /**
     * 服务启动前执行该回调, 用于添加额外监听端口, 添加额外Process
     */
    public function before_start()
    {

    }

    /**
     * 进程初始化回调, 用于初始化全局变量
     * @param \swoole_websocket_server $server
     * @param $workerId
     */
    public function onWorkerStart($server, $workerId)
    {

    }

    /**
     * Admin 管理接口, 可自定义管理接口行为
     * @param \swoole_http_request $request
     * @param \swoole_http_response $response
     */
    public function onRequest(\swoole_http_request $request, \swoole_http_response $response)
    {

    }
}

并且在config.php配置文件中,需要指定该类作为main_callback

return [
    'project' => [
        'main_callback' => '\\app\\callback\\MainServer',
    ]
];

在该类中,还可以添加其他Swoole相关的回调函数。具体回调函数的类型和作用请参考Swoole官方文档:事件回调函数

在这些回调函数中,以下两个回调函数在CatMicro底层做了实现,因此这两个回调无需再次定义:

  • onTask
  • onFinish

需要注意的是,有一部分回调函数在CatMicro框架内已经有过定义,因此在实现这些回调函数时,需要调用父类的对应函数,例如:

public funciton onStart(\swoole_server $server)
{
    parent::onStart($server);
}

results matching ""

    No results matching ""