跳到主要内容

Message Type

Message Type 用于标识当前帧的通用协议语义。它不表示具体业务能力,具体业务能力由 Operation Name 或 Flow Name 定义

编号范围

当前版本固化以下编号范围与核心 Message Type 数值。未列出的编号保留给后续版本

范围类别说明
0x0000Invalid无效值,禁止发送
0x0001-0x00ff通用消息ACK、Error 等
0x0100-0x01ffOperation一次性 Request/Response 调用
0x0200-0x02ffFlowFlow 协商、数据、关闭
0x0300-0x03ffHeartbeat / Recovery心跳、时钟同步、NRCP 层恢复
0x0400-0x04ffProtocol EventQoS、Session、Flow 等协议层事件
0x8000-0xffffPrivate / Experimental私有扩展或实验类型

核心注册表

名称类别
0x0000INVALIDInvalid
0x0001ACK通用消息
0x0002ERROR通用消息
0x0100OPERATION_REQUESTOperation
0x0101OPERATION_RESPONSEOperation
0x0102OPERATION_ERROROperation
0x0103OPERATION_CANCELOperation,当前版本保留
0x0200FLOW_SUBSCRIBE_REQUESTFlow
0x0201FLOW_SUBSCRIBE_RESPONSEFlow
0x0202FLOW_SUBSCRIBE_ACKFlow
0x0203FLOW_PUBLISH_REQUESTFlow
0x0204FLOW_PUBLISH_RESPONSEFlow
0x0205FLOW_PUBLISH_ACKFlow
0x0206FLOW_DATAFlow
0x0207FLOW_CLOSEFlow
0x0208FLOW_UPDATEFlow,当前版本保留
0x0300HEARTBEAT_PINGHeartbeat / Recovery
0x0301HEARTBEAT_PONGHeartbeat / Recovery
0x0302RECOVER_REQUESTHeartbeat / Recovery
0x0303RECOVER_RESPONSEHeartbeat / Recovery
0x0400SESSION_EVENTProtocol Event
0x0401FLOW_EVENTProtocol Event
0x0402QOS_EVENTProtocol Event
0x0403PROTOCOL_FAULT_EVENTProtocol Event

未知 Message Type 的处理规则:

  • 若 Message Type 位于保留区间,接收端应返回 UNKNOWN_MESSAGE_TYPE 或丢弃;
  • 若 Message Type 位于私有扩展区间,接收端允许按本地扩展处理;
  • 若接收端不支持该私有扩展,应返回 UNSUPPORTED_MESSAGE_TYPE 或丢弃;

通用消息

名称语义Payload Codecchannel_id
ACK应用层确认JSON0
ERROR通用错误响应或错误通知JSON0

Operation 消息

名称语义Payload Codecchannel_id
OPERATION_REQUESTOperation 请求JSON,具体 Operation 可覆盖0
OPERATION_RESPONSEOperation 成功响应JSON,具体 Operation 可覆盖0
OPERATION_ERROROperation 失败响应JSON0
OPERATION_CANCEL取消尚未完成的 Operation,当前版本保留JSON0

Flow 消息

名称语义Payload Codecchannel_id
FLOW_SUBSCRIBE_REQUESTSub 方向 Pub 方申请订阅JSON0
FLOW_SUBSCRIBE_RESPONSEPub 方返回订阅结果与最终 QoSJSON0 或授权的 channel_id
FLOW_SUBSCRIBE_ACKSub 方确认接受订阅结果JSON授权的 channel_id
FLOW_PUBLISH_REQUESTPub 方通知对端自己准备发布 FlowJSON0
FLOW_PUBLISH_RESPONSESub 方返回是否接受以及最终 QoSJSON0 或授权的 channel_id
FLOW_PUBLISH_ACKPub 方确认发布协商完成JSON授权的 channel_id
FLOW_DATA已建立 Flow 的数据帧由具体 Flow 定义必须非 0
FLOW_CLOSE任一方主动关闭 FlowJSON必须非 0
FLOW_UPDATEFlow 参数更新,当前版本保留JSON必须非 0

Heartbeat 与 Recovery 消息

名称语义Payload Codecchannel_id
HEARTBEAT_PING心跳与时钟同步 PingJSON0
HEARTBEAT_PONG心跳与时钟同步 PongJSON0
RECOVER_REQUESTClient 发起 NRCP 层恢复JSON0
RECOVER_RESPONSEServer 返回恢复结果JSON0

协议层 Event 消息

名称语义Payload Codecchannel_id
SESSION_EVENTSession 状态变化通知JSON0
FLOW_EVENTFlow 状态变化通知JSON0 或相关 Flow 的 channel_id
QOS_EVENTQoS 更新、QoS 降级或 QoS 异常通知JSON0 或相关 Flow 的 channel_id
PROTOCOL_FAULT_EVENT协议层故障事件JSON0

机器人本体故障不属于协议层 Event,应通过专门 Flow 通知,例如后续接口定义中的机器人故障 Flow