使用的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