事件

    事件参数:

    IMI.APP.INIT

    项目初始化事件

    事件参数:

    IMI.LOAD_RUNTIME_INFO

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

    IMI.MAIN_SERVER.WORKER.START.APP

    在项目中监听 WorkerStart 事件

    事件参数:

    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

    事件参数:

    自定义进程开始事件

    事件参数:

    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

    请求上下文销毁事件

    事件参数:无

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

    OnWorkerStart

    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. /**
    18. * 任务数据
    19. * @var mixed
    20. */
    21. public $data;
    22. }

    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. * @var \Imi\Server\Base
    5. */
    6. public $server;
    7. /**
    8. * Worker进程ID
    9. * @var int
    10. */
    11. public $workerID;
    12. /**
    13. * 消息内容,可以是任意PHP类型
    14. * @var mixed
    15. */
    16. public $message;
    17. }

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

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

    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

    事件参数:

    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. */
    11. public $frame;
    12. }

    close

    事件参数:

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

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

    UDP Server

    packet