主服务创建事件

函数原型

  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. });

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

添加一个自定义进程

::: tip 具体详细操作可到 基础使用->自定义进程中查看 :::

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

::: warning 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. });

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

启动前调用协程API

  1. use Swoole\Coroutine\Scheduler;
  2. $scheduler = new Scheduler();
  3. $scheduler->add(function() {
  4. /* 调用协程API */
  5. });
  6. $scheduler->start();
  7. //清除全部定时器
  8. \Swoole\Timer::clearAll();