## **额外的监听类型** CQ HTTP API组件提供了一些额外的监听消息类型以供使用。 ### **额外的监听** 在核心框架更新了byName机制之后,使得开发者和用户可以支持自定义枚举类型并于注解参数相互结合,使监听核心框架以外的消息类型成为了可能。 CQ HTTP API组件支持监听CQ HTTP API所提供的两个元事件: >[warning] 目前如果想要使用额外的监听类型,JDK必须为JDK8,不高不低。 - 元事件 - **生命周期** - 元事件 - **心跳** 使用方法如下: ```java /** * 元事件-心跳 监听 */ @Listen.ByName(ExMsgGet.HEARTBEAT) public void heartbeatListen(Heartbeat heartbeat){ // do something } /** * 元事件-生命周期 监听 */ @Listen.ByName(ExMsgGet.LIFECYCLE) public void lifecycleListen(Lifecycle lifecycle){ // do something } ``` 其中,两种事件对应的消息类型及其定义如下: ### **元事件 - 心跳** **消息类型:`Heartbeat`** **API:** ```java /** * 插件状态 */ PluginStatus getStatus(); ``` 其中,`PluginStatus`类的字段如下: ```java // HTTP API 插件已初始化 boolean app_initialized; // HTTP API 插件已启用   boolean app_enabled;   // HTTP API 的各内部插件是否正常运行 Object plugins_good; // HTTP API 插件正常运行(已初始化、已启用、各内部插件正常运行) boolean app_good; // 当前 QQ 在线,null 表示无法查询到在线状态 boolean online; // HTTP API 插件状态符合预期,意味着插件已初始化,内部插件都在正常运行,且 QQ 在线 boolean good; // 原始数据字符串 String originalData; ``` **※注 :目前此`PluginStatus` 类的定义尚不完善,暂时不建议使用。** <br> ### **元事件 - 生命周期** 消息类型:`Lifecycle` API: ```java /** * enable、disable 事件子类型,分别表示插件启用、插件停用 */ QQBaseLifecycle.LifecycleType getSubType(); ``` **※注:目前`LifecycleType`枚举类所处的内部类位置可能会在1.0版本之前变更。**