Swoole 事件列表

    目录

    Swoole 环境事件

    IMI.SWOOLE.MAIN_COROUTINE.END

    Swoole 主协程执行完毕事件,此事件在协程中

    事件参数:

    IMI.SWOOLE.MAIN_COROUTINE.AFTER

    Swoole 主协程执行完毕后置事件,此事件在非协程中

    事件参数:

    IMI.SWOOLE.SERVER.BEFORE_START

    Swoole 服务器开始前

    事件参数:

    IMI.MAIN_SERVER.WORKER.START.APP

    在项目中监听 WorkerStart 事件

    事件参数:

    class WorkerStartEventParam extends EventParam
    {
        /**
         * 服务器对象
         * @var \Imi\Swoole\Server\Base
         */
        public $server;
    
        /**
         * Worker进程ID
         * @var int
         */
        public $workerId;
    }

    IMI.PROCESS_POOL.PROCESS.BEGIN

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

    事件参数:

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

    IMI.PROCESS_POOL.PROCESS.END

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

    事件参数:

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

    Swoole Server 全局事件

    IMI.MAIN_SERVER.START

    OnStart

    事件参数:

    class StartEventParam extends EventParam
    {
        /**
         * 服务器对象
         * @var \Imi\Swoole\Server\Base
         */
        public $server;
    
    }

    IMI.MAIN_SERVER.SHUTDOWN

    OnShutdown

    事件参数:

    class ShutdownEventParam extends EventParam
    {
        /**
         * 服务器对象
         * @var \Imi\Swoole\Server\Base
         */
        public $server;
    
    }

    IMI.MAIN_SERVER.WORKER.START

    OnWorkerStart

    事件参数:

    class WorkerStartEventParam extends EventParam
    {
        /**
         * 服务器对象
         * @var \Imi\Swoole\Server\Base
         */
        public $server;
    
        /**
         * Worker进程ID
         * @var int
         */
        public $workerId;
    }

    IMI.MAIN_SERVER.WORKER.STOP

    OnWorkerStop

    事件参数:

    class WorkerStopEventParam extends EventParam
    {
        /**
         * 服务器对象
         * @var \Imi\Swoole\Server\Base
         */
        public $server;
    
        /**
         * Worker进程ID
         * @var int
         */
        public $workerId;
    }

    IMI.MAIN_SERVER.MANAGER.START

    OnManagerStart

    事件参数:

    class ManagerStartEventParam extends EventParam
    {
        /**
         * 服务器对象
         * @var \Imi\Swoole\Server\Base
         */
        public $server;
    
    }

    IMI.MAIN_SERVER.MANAGER.STOP

    OnManagerStop

    事件参数:

    class ManagerStopEventParam extends EventParam
    {
        /**
         * 服务器对象
         * @var \Imi\Swoole\Server\Base
         */
        public $server;
    
    }

    IMI.MAIN_SERVER.TASK

    OnTask

    事件参数:

    class TaskEventParam extends EventParam
    {
        /**
         * 服务器对象
         * @var \Imi\Swoole\Server\Base
         */
        public $server;
    
        /**
         * 任务ID
         * @var int
         */
        public $taskId;
    
        /**
         * worker进程ID
         * @var int
         */
        public $workerId;
    
        /**
         * 任务数据
         * @var mixed
         */
        public $data;
    }

    IMI.MAIN_SERVER.FINISH

    OnFinish

    事件参数:

    class FinishEventParam extends EventParam
    {
        /**
         * 服务器对象
         * @var \Imi\Swoole\Server\Base
         */
        public $server;
    
        /**
         * 任务ID
         * @var int
         */
        public $taskId;
    
        /**
         * 任务数据
         * @var mixed
         */
        public $data;
    }

    IMI.MAIN_SERVER.PIPE_MESSAGE

    OnPipeMessage

    事件参数:

    class PipeMessageEventParam extends EventParam
    {
        /**
         * 服务器对象
         * @var \Imi\Swoole\Server\Base
         */
        public $server;
    
        /**
         * Worker进程ID
         * @var int
         */
        public $workerId;
    
        /**
         * 消息内容,可以是任意PHP类型
         * @var mixed
         */
        public $message;
    }

    IMI.MAIN_SERVER.WORKER_ERROR

    OnWorkerError

    事件参数:

    class WorkerErrorEventParam extends EventParam
    {
        /**
         * 服务器对象
         * @var \Imi\Swoole\Server\Base
         */
        public $server;
    
        /**
         * Worker进程ID
         * @var int
         */
        public $workerId;
    
        /**
         * Worker进程PID
         *
         * @var int
         */
        public $workerPid;
        
        /**
         * 退出的状态码,范围是 1 ~255
         *
         * @var int
         */
        public $exitCode;
    
        /**
         * 进程退出的信号
         *
         * @var int
         */
        public $signal;
    }

    Swoole Server 对象事件

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

    Http Server

    事件监听:@ClassEventListener(className="Imi\Swoole\Server\Http\Server", eventName="事件名")

    Http 请求事件

    事件名:request

    事件参数:

    class RequestEventParam extends EventParam
    {
        /**
         * swoole 请求对象
         * @var \Imi\Server\Http\Message\Request
         */
        public $request;
    
        /**
         * swoole 响应对象
         * @var \Imi\Server\Http\Message\Response
         */
        public $response;
    }

    Swoole 关闭连接事件

    事件名:close

    事件参数:

    class CloseEventParam extends EventParam
    {
        /**
         * 服务器对象
         * @var \Imi\Swoole\Server\Base
         */
        public $server;
    
        /**
         * 客户端连接的标识符
         * @var int|string
         */
        public $clientId;
    
        /**
         * 来自那个reactor线程
         *
         * @var int
         */
        public $reactorId;
    }

    WebSocket Server

    事件监听:@ClassEventListener(className="Imi\Swoole\Server\WebSocket\Server", eventName="事件名")

    WebSocket 握手事件

    事件名:handShake

    握手事件

    事件参数:

    class HandShakeEventParam extends EventParam
    {
        /**
         * swoole 请求对象
         * @var \Imi\Server\Http\Message\Request
         */
        public $request;
    
        /**
         * swoole 响应对象
         * @var \Imi\Server\Http\Message\Response
         */
        public $response;
    }

    握手后打开连接事件

    事件名:open

    握手完成后打开连接事件

    事件参数:

    class OpenEventParam extends EventParam
    {
        /**
         * 服务器对象
         *
         * @var \Imi\Swoole\Server\Base
         */
        public $server;
    
        /**
         * 客户端连接的标识符.
         *
         * @var \Imi\Server\Http\Message\Request
         */
        public $request;
    }

    消息事件

    事件名:message

    事件参数:

    class MessageEventParam extends EventParam
    {
        /**
         * 服务器对象
         * @var \Imi\Swoole\Server\Base
         */
        public $server;
    
        /**
         * swoole 数据帧对象
         * @var \swoole_websocket_frame
         */
        public $frame;
    }

    WebSocket 连接关闭事件

    事件名:close

    事件参数:

    class CloseEventParam extends EventParam
    {
        /**
         * 服务器对象
         * @var \Imi\Swoole\Server\Base
         */
        public $server;
    
        /**
         * 客户端连接的标识符
         * @var int|string
         */
        public $clientId;
    
        /**
         * 来自那个reactor线程
         *
         * @var int
         */
        public $reactorId;
    }

    非 WebSocket 连接关闭事件

    事件名:disconnect

    只有非 WebSocket 连接关闭时才会触发该事件。

    事件参数:

    class DisconnectEventParam extends EventParam
    {
        /**
         * 服务器对象
         * @var \Imi\Swoole\Server\Base
         */
        public $server;
    
        /**
         * 客户端连接的标识符
         * @var int|string
         */
        public $clientId;
    }

    TCP Server

    事件监听:@ClassEventListener(className="Imi\Swoole\Server\TcpServer\Server", eventName="事件名")

    连接事件

    事件名:connect

    事件参数:

    class ConnectEventParam extends EventParam
    {
        /**
         * 服务器对象
         * @var \Imi\Swoole\Server\Base
         */
        public $server;
    
        /**
         * 客户端连接的标识符
         * @var int|string
         */
        public $clientId;
    
        /**
         * Reactor线程ID
         * @var int
         */
        public $reactorId;
    }

    接收数据事件

    事件名:receive

    事件参数:

    class ReceiveEventParam extends EventParam
    {
        /**
         * 服务器对象
         * @var \Imi\Swoole\Server\Base
         */
        public $server;
    
        /**
         * 客户端连接的标识符
         * @var int|string
         */
        public $clientId;
    
        /**
         * Reactor线程ID
         * @var int
         */
        public $reactorId;
    
        /**
         * 接收到的数据
         *
         * @var string
         */
        public $data;
    }

    TCP 连接关闭事件

    事件名:close

    事件参数:

    class CloseEventParam extends EventParam
    {
        /**
         * 服务器对象
         * @var \Imi\Swoole\Server\Base
         */
        public $server;
    
        /**
         * 客户端连接的标识符
         * @var int|string
         */
        public $clientId;
    
        /**
         * 来自那个reactor线程
         *
         * @var int
         */
        public $reactorId;
    }

    UDP Server

    事件监听:@ClassEventListener(className="Imi\Swoole\Server\UdpServer\Server", eventName="事件名")

    包事件

    事件名:packet

    事件参数:

    class PacketEventParam extends EventParam
    {
        /**
         * 服务器对象
         * @var \Imi\Swoole\Server\Base
         */
        public $server;
    
        /**
         * 数据
         * @var string
         */
        public $data;
    
        /**
         * 客户端信息
         *
         * @var array
         */
        public $clientInfo;
    }