• 主服务创建事件
    • 函数原型
    • 已完成工作
    • 可处理内容
      • 注册主服务回调事件
      • 添加一个自定义进程
      • 添加一个子服务监听

    主服务创建事件

    函数原型

    1. @param \EasySwoole\EasySwoole\Swoole\EventRegister $register
    2. public static function mainServerCreate(EventRegister $register)
    3. {
    4. }

    已完成工作

    在执行该事件的时候,已经完成的工作有:

    • 框架初始化事件
    • 配置文件加载完成
    • 主Swoole Server创建成功
    • 主Swoole Server 注册了默认的onRequest,onTask,onFinish事件。

    可处理内容

    注册主服务回调事件

    例如为主服务注册onWorkerStart事件

    1. $register->add($register::onWorkerStart,function (\swoole_server $server,int $workerId){
    2. var_dump($workerId.'start');
    3. });

    例如为主服务增加onMessage事件

    1. // 给server 注册相关事件 在 WebSocket 模式下 message 事件必须注册 并且交给
    2. $register->set(EventRegister::onMessage, function (\swoole_websocket_server $server, \swoole_websocket_frame $frame) {
    3. var_dump($frame);
    4. });

    set方法和add方法是不同的,set将会覆盖之前配置的事件回调,而add是增加一个新的回调

    添加一个自定义进程

    1. ServerManager::getInstance()->getSwooleServer()->addProcess((new Test('test_process'))->getProcess());

    Test 是 EasySwoole\Component\Process\AbstractProcess 抽象类的子类

    添加一个子服务监听

    1. $subPort = ServerManager::getInstance()->getSwooleServer()->addListener('0.0.0.0',9503,SWOOLE_TCP);
    2. $subPort->on('receive',function (\swoole_server $server, int $fd, int $reactor_id, string $data){
    3. var_dump($data);
    4. });

    参考不同的Demo分支event写法: demo分支