第六章 使用WebSocket作为网络层

如果MQTT在WebSocket [RFC6455] 连接上传输,必须满足下面的条件:

  • MQTT控制报文必须使用WebSocket二进制数据帧发送。如果收到任何其它类型的数据帧,接收者必须关闭网络连接 [MQTT-6.0.0-1]。

  • 单个WebSocket数据帧可以包含多个或者部分MQTT报文。接收者不能假设MQTT控制报文按WebSocket帧边界对齐 [MQTT-6.0.0-2]。

  • 客户端必须将字符串 mqtt 包含在它提供的WebSocket子协议列表里 [MQTT-6.0.0-3]。

  • 服务端选择和返回的WebSocket子协议名必须mqtt [MQTT-6.0.0-4] 。

  • 用于连接客户端和服务器的WebSocket URI对MQTT协议没有任何影响。

# 6.1 IANA注意事项 IANA Considerations

本规范请求IANA在WebSocket子协议名条目下注册WebSocket MQTT子协议,使用下列数据:

# 图例 6.1 - IANA WebSocket标识符
子协议标识符 mqtt
子协议通用名 mqtt
子协议定义 http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html
Last Updated: 12/5/2021, 8:33:06 AM