# AppGame 模块事件系统 ## 概述 AppGame 模块使用事件机制与其他系统进行松耦合交互。事件系统允许不同模块之间通过事件进行通信,而不需要直接依赖。 ## 事件列表 ### 1. ProtobufResponseEvent 当 Protobuf 响应返回前触发此事件,允许其他系统在响应返回前进行处理或修改。 **事件类**:`App\Module\AppGame\Events\ProtobufResponseEvent` **触发时机**:在 `Protobuf::response` 方法中,返回响应前 **事件属性**: - `response`:Protobuf 响应对象 (`Uraus\Kku\Response`) ### 2. LoginSuccessEvent 当用户成功登录时触发此事件,允许其他系统在用户登录后执行相关操作。 **事件类**:`App\Module\AppGame\Events\LoginSuccessEvent` **触发时机**:在 `LoginHandler::handle` 方法中,用户成功登录后 **事件属性**: - `user`:登录的用户对象 (`App\Module\User\Models\User`) - `loginTime`:登录时间戳 - `sessionId`:会话ID ## 监听器 AppGame 模块提供了以下监听器: ### 1. ProtobufResponseListener 通用的 Protobuf 响应事件监听器,记录响应信息。 **监听器类**:`App\Module\AppGame\Listeners\ProtobufResponseListener` ### 2. AppGameProtobufResponseListener AppGame 模块特定的 Protobuf 响应事件监听器,处理 AppGame 模块特定的逻辑。 **监听器类**:`App\Module\AppGame\Listeners\AppGameProtobufResponseListener` ### 3. GameProtobufResponseListener 专门处理游戏相关的 Protobuf 响应事件监听器。 **监听器类**:`App\Module\AppGame\Listeners\GameProtobufResponseListener` ### 4. LoginSuccessListener 登录成功事件监听器,处理用户登录成功后的相关操作。 **监听器类**:`App\Module\AppGame\Listeners\LoginSuccessListener`