Message Type 用于标识当前帧的通用协议语义。它不表示具体业务能力,具体业务能力由 Operation Name 或 Flow Name 定义
编号范围
当前版本固化以下编号范围与核心 Message Type 数值。未列出的编号保留给后续版本
| 范围 | 类别 | 说明 |
|---|
0x0000 | Invalid | 无效值,禁止发送 |
0x0001-0x00ff | 通用消息 | ACK、Error 等 |
0x0100-0x01ff | Operation | 一次性 Request/Response 调用 |
0x0200-0x02ff | Flow | Flow 协商、数据、关闭 |
0x0300-0x03ff | Heartbeat / Recovery | 心跳、时钟同步、NRCP 层恢复 |
0x0400-0x04ff | Protocol Event | QoS、Session、Flow 等协议层事件 |
0x8000-0xffff | Private / Experimental | 私有扩展或实验类型 |
核心注册表
| 值 | 名称 | 类别 |
|---|
0x0000 | INVALID | Invalid |
0x0001 | ACK | 通用消息 |
0x0002 | ERROR | 通用消息 |
0x0100 | OPERATION_REQUEST | Operation |
0x0101 | OPERATION_RESPONSE | Operation |
0x0102 | OPERATION_ERROR | Operation |
0x0103 | OPERATION_CANCEL | Operation,当前版本保留 |
0x0200 | FLOW_SUBSCRIBE_REQUEST | Flow |
0x0201 | FLOW_SUBSCRIBE_RESPONSE | Flow |
0x0202 | FLOW_SUBSCRIBE_ACK | Flow |
0x0203 | FLOW_PUBLISH_REQUEST | Flow |
0x0204 | FLOW_PUBLISH_RESPONSE | Flow |
0x0205 | FLOW_PUBLISH_ACK | Flow |
0x0206 | FLOW_DATA | Flow |
0x0207 | FLOW_CLOSE | Flow |
0x0208 | FLOW_UPDATE | Flow,当前版本保留 |
0x0300 | HEARTBEAT_PING | Heartbeat / Recovery |
0x0301 | HEARTBEAT_PONG | Heartbeat / Recovery |
0x0302 | RECOVER_REQUEST | Heartbeat / Recovery |
0x0303 | RECOVER_RESPONSE | Heartbeat / Recovery |
0x0400 | SESSION_EVENT | Protocol Event |
0x0401 | FLOW_EVENT | Protocol Event |
0x0402 | QOS_EVENT | Protocol Event |
0x0403 | PROTOCOL_FAULT_EVENT | Protocol Event |
未知 Message Type 的处理规则:
- 若 Message Type 位于保留区间,接收端应返回
UNKNOWN_MESSAGE_TYPE 或丢弃;
- 若 Message Type 位于私有扩展区间,接收端允许按本地扩展处理;
- 若接收端不支持该私有扩展,应返回
UNSUPPORTED_MESSAGE_TYPE 或丢弃;
通用消息
| 名称 | 语义 | Payload Codec | channel_id |
|---|
ACK | 应用层确认 | JSON | 0 |
ERROR | 通用错误响应或错误通知 | JSON | 0 |
Operation 消息
| 名称 | 语义 | Payload Codec | channel_id |
|---|
OPERATION_REQUEST | Operation 请求 | JSON,具体 Operation 可覆盖 | 0 |
OPERATION_RESPONSE | Operation 成功响应 | JSON,具体 Operation 可覆盖 | 0 |
OPERATION_ERROR | Operation 失败响应 | JSON | 0 |
OPERATION_CANCEL | 取消尚未完成的 Operation,当前版本保留 | JSON | 0 |
Flow 消息
| 名称 | 语义 | Payload Codec | channel_id |
|---|
FLOW_SUBSCRIBE_REQUEST | Sub 方向 Pub 方申请订阅 | JSON | 0 |
FLOW_SUBSCRIBE_RESPONSE | Pub 方返回订阅结果与最终 QoS | JSON | 0 或授权的 channel_id |
FLOW_SUBSCRIBE_ACK | Sub 方确认接受订阅结果 | JSON | 授权的 channel_id |
FLOW_PUBLISH_REQUEST | Pub 方通知对端自己准备发布 Flow | JSON | 0 |
FLOW_PUBLISH_RESPONSE | Sub 方返回是否接受以及最终 QoS | JSON | 0 或授权的 channel_id |
FLOW_PUBLISH_ACK | Pub 方确认发布协商完成 | JSON | 授权的 channel_id |
FLOW_DATA | 已建立 Flow 的数据帧 | 由具体 Flow 定义 | 必须非 0 |
FLOW_CLOSE | 任一方主动关闭 Flow | JSON | 必须非 0 |
FLOW_UPDATE | Flow 参数更新,当前版本保留 | JSON | 必须非 0 |
Heartbeat 与 Recovery 消息
| 名称 | 语义 | Payload Codec | channel_id |
|---|
HEARTBEAT_PING | 心跳与时钟同步 Ping | JSON | 0 |
HEARTBEAT_PONG | 心跳与时钟同步 Pong | JSON | 0 |
RECOVER_REQUEST | Client 发起 NRCP 层恢复 | JSON | 0 |
RECOVER_RESPONSE | Server 返回恢复结果 | JSON | 0 |
协议层 Event 消息
| 名称 | 语义 | Payload Codec | channel_id |
|---|
SESSION_EVENT | Session 状态变化通知 | JSON | 0 |
FLOW_EVENT | Flow 状态变化通知 | JSON | 0 或相关 Flow 的 channel_id |
QOS_EVENT | QoS 更新、QoS 降级或 QoS 异常通知 | JSON | 0 或相关 Flow 的 channel_id |
PROTOCOL_FAULT_EVENT | 协议层故障事件 | JSON | 0 |
机器人本体故障不属于协议层 Event,应通过专门 Flow 通知,例如后续接口定义中的机器人故障 Flow