事件

imi 框架事件

IMI.INITED

框架初始化事件

事件参数:

IMI.APP.INIT

项目初始化事件

事件参数:

IMI.LOAD_RUNTIME_INFO

加载 runtime 事件,在此事件中,绝对可以使用 App::getRuntimeInfo() 获取到数据。

IMI.MAIN_SERVER.WORKER.START.APP

在项目中监听 WorkerStart 事件

事件参数:

  1. class WorkerStartEventParam extends EventParam
  2. {
  3. /**
  4. * 服务器对象
  5. * @var \Imi\Server\Base
  6. */
  7. public $server;
  8. /**
  9. * Worker进程ID
  10. * @var int
  11. */
  12. public $workerID;
  13. }

IMI.SERVER.CREATE.BEFORE

创建服务器对象前置操作,主服务器+子服务器,每个创建前都会触发!

事件参数:

IMI.SERVER.CREATE.AFTER

创建服务器对象前置后作,主服务器+子服务器,每个创建后都会触发!

事件参数:

IMI.SERVERS.CREATE.BEFORE

创建服务器对象前置后作,只会触发一次!

事件参数:

IMI.SERVERS.CREATE.AFTER

创建服务器对象前置后作,只会触发一次!

事件参数:

IMI.INIT.WORKER.BEFORE

Worker 进程初始化后置

事件参数:

IMI.INIT.WORKER.AFTER

Worker 进程初始化后置

事件参数:

IMI.PROCESS.BEGIN

自定义进程开始事件

事件参数:

  1. string $name, \Swoole\Process $process

IMI.PROCESS.END

自定义进程结束事件

事件参数:

  1. string $name, \Swoole\Process $process

IMI.PROCESS_POOL.PROCESS.BEGIN

自定义进程池中的进程开始事件

事件参数:

  1. string $name, \Swoole\Process\Pool $pool, int $workerId, int $workerNum, array $args, int $ipcType, string $msgQueueKey

IMI.PROCESS_POOL.PROCESS.END

自定义进程池中的进程结束事件

事件参数:

  1. string $name, \Swoole\Process\Pool $pool, int $workerId, int $workerNum, array $args, int $ipcType, string $msgQueueKey

IMI.SERVER.GROUP.JOIN

服务器逻辑分组加入事件

事件参数:

  1. \Imi\Server\Base $server, string $groupName, int $fd

IMI.SERVER.GROUP.LEAVE

服务器逻辑分组离开事件

事件参数:

  1. \Imi\Server\Base $server, string $groupName, int $fd

IMI.REQUEST_CONTENT.CREATE

请求上下文创建事件

事件参数:无

IMI.REQUEST_CONTENT.DESTROY

请求上下文销毁事件

事件参数:无

Swoole Server 全局事件

IMI.MAIN_SERVER.START

OnStart

事件参数:

  1. class StartEventParam extends EventParam
  2. {
  3. /**
  4. * 服务器对象
  5. * @var \Imi\Server\Base
  6. */
  7. public $server;
  8. }

IMI.MAIN_SERVER.SHUTDOWN

OnShutdown

事件参数:

  1. class ShutdownEventParam extends EventParam
  2. {
  3. /**
  4. * 服务器对象
  5. * @var \Imi\Server\Base
  6. */
  7. public $server;
  8. }

IMI.MAIN_SERVER.WORKER.START

OnWorkerStart

事件参数:

  1. class WorkerStartEventParam extends EventParam
  2. {
  3. /**
  4. * 服务器对象
  5. * @var \Imi\Server\Base
  6. */
  7. public $server;
  8. /**
  9. * Worker进程ID
  10. * @var int
  11. */
  12. public $workerID;
  13. }

IMI.MAIN_SERVER.WORKER.STOP

OnWorkerStop

事件参数:

  1. class WorkerStopEventParam extends EventParam
  2. {
  3. /**
  4. * 服务器对象
  5. * @var \Imi\Server\Base
  6. */
  7. public $server;
  8. /**
  9. * Worker进程ID
  10. * @var int
  11. */
  12. public $workerID;
  13. }

IMI.MAIN_SERVER.MANAGER.START

OnManagerStart

事件参数:

  1. class ManagerStartEventParam extends EventParam
  2. {
  3. /**
  4. * 服务器对象
  5. * @var \Imi\Server\Base
  6. */
  7. public $server;
  8. }

IMI.MAIN_SERVER.MANAGER.STOP

OnManagerStop

事件参数:

  1. class ManagerStopEventParam extends EventParam
  2. {
  3. /**
  4. * 服务器对象
  5. * @var \Imi\Server\Base
  6. */
  7. public $server;
  8. }

IMI.MAIN_SERVER.TASK

OnTask

事件参数:

  1. class TaskEventParam extends EventParam
  2. {
  3. /**
  4. * 服务器对象
  5. * @var \Imi\Server\Base
  6. */
  7. public $server;
  8. /**
  9. * 任务ID
  10. * @var int
  11. */
  12. public $taskID;
  13. /**
  14. * worker进程ID
  15. * @var int
  16. */
  17. public $workerID;
  18. /**
  19. * 任务数据
  20. * @var mixed
  21. */
  22. public $data;
  23. }

IMI.MAIN_SERVER.FINISH

OnFinish

事件参数:

  1. class FinishEventParam extends EventParam
  2. {
  3. /**
  4. * 服务器对象
  5. * @var \Imi\Server\Base
  6. */
  7. public $server;
  8. /**
  9. * 任务ID
  10. * @var int
  11. */
  12. public $taskID;
  13. /**
  14. * 任务数据
  15. * @var mixed
  16. */
  17. public $data;
  18. }

IMI.MAIN_SERVER.PIPE_MESSAGE

OnPipeMessage

事件参数:

  1. class PipeMessageEventParam extends EventParam
  2. {
  3. /**
  4. * 服务器对象
  5. * @var \Imi\Server\Base
  6. */
  7. public $server;
  8. /**
  9. * Worker进程ID
  10. * @var int
  11. */
  12. public $workerID;
  13. /**
  14. * 消息内容,可以是任意PHP类型
  15. * @var mixed
  16. */
  17. public $message;
  18. }

IMI.MAIN_SERVER.WORKER_ERROR

OnWorkerError

事件参数:

  1. class WorkerErrorEventParam extends EventParam
  2. {
  3. /**
  4. * 服务器对象
  5. * @var \Imi\Server\Base
  6. */
  7. public $server;
  8. /**
  9. * Worker进程ID
  10. * @var int
  11. */
  12. public $workerID;
  13. /**
  14. * Worker进程PID
  15. *
  16. * @var int
  17. */
  18. public $workerPid;
  19. /**
  20. * 退出的状态码,范围是 1 ~255
  21. *
  22. * @var int
  23. */
  24. public $exitCode;
  25. /**
  26. * 进程退出的信号
  27. *
  28. * @var int
  29. */
  30. public $signal;
  31. }

Swoole Server 对象事件

对象事件是由多个服务器对象发出的,监听多个端口即认定为多个服务器。

Http Server

request

事件参数:

  1. class RequestEventParam extends EventParam
  2. {
  3. /**
  4. * swoole 请求对象
  5. * @var \Imi\Server\Http\Message\Request
  6. */
  7. public $request;
  8. /**
  9. * swoole 响应对象
  10. * @var \Imi\Server\Http\Message\Response
  11. */
  12. public $response;
  13. }

close

事件参数:

  1. class CloseEventParam extends EventParam
  2. {
  3. /**
  4. * 服务器对象
  5. * @var \Imi\Server\Base
  6. */
  7. public $server;
  8. /**
  9. * 客户端连接的标识符
  10. * @var int
  11. */
  12. public $fd;
  13. /**
  14. * 来自那个reactor线程
  15. *
  16. * @var int
  17. */
  18. public $reactorID;
  19. }

WebSocket Server

handShake

事件参数:

  1. class HandShakeEventParam extends EventParam
  2. {
  3. /**
  4. * swoole 请求对象
  5. * @var \Imi\Server\Http\Message\Request
  6. */
  7. public $request;
  8. /**
  9. * swoole 响应对象
  10. * @var \Imi\Server\Http\Message\Response
  11. */
  12. public $response;
  13. }

message

事件参数:

  1. class MessageEventParam extends EventParam
  2. {
  3. /**
  4. * 服务器对象
  5. * @var \Imi\Server\Base
  6. */
  7. public $server;
  8. /**
  9. * swoole 数据帧对象
  10. * @var \swoole_websocket_frame
  11. */
  12. public $frame;
  13. }

close

事件参数:

  1. class CloseEventParam extends EventParam
  2. {
  3. /**
  4. * 服务器对象
  5. * @var \Imi\Server\Base
  6. */
  7. public $server;
  8. /**
  9. * 客户端连接的标识符
  10. * @var int
  11. */
  12. public $fd;
  13. /**
  14. * 来自那个reactor线程
  15. *
  16. * @var int
  17. */
  18. public $reactorID;
  19. }

TCP Server

connect

事件参数:

  1. class ConnectEventParam extends EventParam
  2. {
  3. /**
  4. * 服务器对象
  5. * @var \Imi\Server\Base
  6. */
  7. public $server;
  8. /**
  9. * 客户端连接的标识符
  10. * @var int
  11. */
  12. public $fd;
  13. /**
  14. * Reactor线程ID
  15. * @var int
  16. */
  17. public $reactorID;
  18. }

receive

事件参数:

  1. class ReceiveEventParam extends EventParam
  2. {
  3. /**
  4. * 服务器对象
  5. * @var \Imi\Server\Base
  6. */
  7. public $server;
  8. /**
  9. * 客户端连接的标识符
  10. * @var int
  11. */
  12. public $fd;
  13. /**
  14. * Reactor线程ID
  15. * @var int
  16. */
  17. public $reactorID;
  18. /**
  19. * 接收到的数据
  20. *
  21. * @var string
  22. */
  23. public $data;
  24. }

close

事件参数:

  1. class CloseEventParam extends EventParam
  2. {
  3. /**
  4. * 服务器对象
  5. * @var \Imi\Server\Base
  6. */
  7. public $server;
  8. /**
  9. * 客户端连接的标识符
  10. * @var int
  11. */
  12. public $fd;
  13. /**
  14. * 来自那个reactor线程
  15. *
  16. * @var int
  17. */
  18. public $reactorID;
  19. }

BufferFull

事件参数:

  1. class BufferEventParam extends EventParam
  2. {
  3. /**
  4. * 服务器对象
  5. * @var \Imi\Server\Base
  6. */
  7. public $server;
  8. /**
  9. * 客户端连接的标识符
  10. * @var int
  11. */
  12. public $fd;
  13. }

BufferEmpty

事件参数:

  1. class BufferEventParam extends EventParam
  2. {
  3. /**
  4. * 服务器对象
  5. * @var \Imi\Server\Base
  6. */
  7. public $server;
  8. /**
  9. * 客户端连接的标识符
  10. * @var int
  11. */
  12. public $fd;
  13. }

UDP Server

packet

  1. class PacketEventParam extends EventParam
  2. {
  3. /**
  4. * 服务器对象
  5. * @var \Imi\Server\Base
  6. */
  7. public $server;
  8. /**
  9. * 数据
  10. * @var string
  11. */
  12. public $data;
  13. /**
  14. * 客户端信息
  15. *
  16. * @var array
  17. */
  18. public $clientInfo;
  19. }