Skip to content

推送事件

与上一部分定义的“API”不同,这些是后端主动推送给前端UI的事件。前端可以通过监听这些事件来实时更新界面,例如显示收到的消息、插件的运行状态等。

所有推送都遵循一个通用模式:通过WebSocket发送一个特定类型的事件名和一个附带的JSON数据包。

推送事件列表


1. message

  • 事件名称: message
  • 作用: 当机器人收到用户发送的消息时,将该消息的内容和上下文信息推送给前端。
  • 触发时机: 在机器人接收到任何类型的消息事件后,预处理器会立即触发此推送。
  • 推送内容 (Payload):
    • bot (字符串): 收到消息的机器人的ID。
    • content (数组, 元组): 经过Markdown格式化后的消息内容。这是一个由元组 [类型, 内容] 组成的数组,例如 [["text", "你好"], ["image", "![图片](http://.../img.png)"]]
      • 元组第一个元素: 消息段类型 (如 text, at, image, reply 等)。
      • 元组第二个元素: 对应消息段的Markdown格式化字符串。
    • userid (字符串): 发送消息的用户的ID。
    • session (字符串): 一个人类可读的会话描述,格式为 "群聊: {群组ID} | 用户: {用户昵称} | {用户ID}""私信 | 用户: {用户昵称} | {用户ID}"
    • avatar (字符串/null): 发送消息用户的头像URL。
    • groupid (字符串/null): 消息所在的群组ID,如果是私聊则为null
    • time (整数): 事件发生的Unix时间戳。

2. plugin_call

  • 事件名称: plugin_call
  • 作用: 当一个插件的匹配器(Matcher)被成功触发并执行完毕后,推送本次调用的详细日志信息。
  • 触发时机: 在一个匹配器(Matcher)的 run_postprocessor(后处理)阶段触发。
  • 推送内容 (Payload):
    • bot (字符串): 执行插件的机器人ID。
    • platform (字符串): 机器人所属的平台 (如 qq, onebot 等)。
    • adapter (字符串): 机器人使用的适配器名称。
    • time_costed (浮点数): 本次插件逻辑执行所花费的时间(秒)。
    • time (整数): 事件发生的Unix时间戳。
    • groupid (字符串/null): 触发插件的群组ID,私聊则为null
    • userid (字符串): 触发插件的用户的ID。
    • plugin (字符串): 被调用的插件的名称。
    • matcher_hash (数组, 字符串): 一个字符串数组,包含了本次调用中执行的具体处理函数的唯一“指纹”,用于精确定位。
    • exception (对象/null): 如果执行过程中发生异常,此字段会包含异常信息;否则为null
      • name (字符串): 异常的类型名称 (如 ValueError)。
      • detail (字符串): 异常的详细信息。

3. call_api

  • 事件名称: call_api
  • 作用: 当机器人调用API(通常是发送消息)时,将调用的信息和发送的内容推送给前端。
  • 触发时机: 在机器人调用任何被监听的API(如 send_msg, send_message 等)时触发。
  • 推送内容 (Payload):
    • api (字符串): 被调用的API的名称 (如 send_msg)。
    • content (数组, 元组): 机器人发送的消息内容,其结构与 message 事件中的 content 字段完全相同。
    • bot (字符串): 调用API的机器人ID。
    • session (字符串): 人类可读的目标会话描述 (如 {群组ID}-{用户ID})。
    • groupid (字符串/null): 消息发送目标的群组ID。
    • time (整数): 事件发生的Unix时间戳。
    • avatar (字符串/null): 机器人自身的头像URL。

4. bot_connect

  • 事件名称: bot_connect
  • 作用: 通知前端有一个机器人实例成功连接并上线。
  • 触发时机: 当一个机器人成功连接到其对应的平台时(on_bot_connect事件)。
  • 推送内容 (Payload):
    • bot (字符串): 上线的机器人ID。
    • adapter (字符串): 机器人使用的适配器名称。
    • platform (字符串): 机器人所属的平台。
    • time (整数): 事件发生的Unix时间戳。

5. bot_disconnect

  • 事件名称: bot_disconnect
  • 作用: 通知前端有一个机器人实例断开连接并下线。
  • 触发时机: 当一个机器人与其平台断开连接时(on_bot_disconnect事件)。
  • 推送内容 (Payload):
    • bot (字符串): 下线的机器人ID。
    • adapter (字符串): 机器人使用的适配器名称。
    • platform (字符串): 机器人所属的平台。
    • time (整数): 事件发生的Unix时间戳。

hlfzsi@outlook.com