**目錄**
1 介紹
1.1 MQTT結構
1.2 術語
1.3 標準引用
1.4 非標準引用
1.5 數據表示
1.5.1 位
1.5.2 整數數據值
1.5.3 UTF-8編碼的字符串
1.6 編輯約定
2 MQTT控制包格式
2.1 MQTT控制包的結構
2.2 固定頭部
2.2.1 MQTT控制包類型
2.2.2 標志
2.2.3 剩余字長
2.3 可變頭部
2.3.1 包標識符
2.4負載
3 MQTT控制包
3.1 CONNECT—客戶端請求到服務器的連接
3.1.1 固定頭部
3.1.2 可變頭部
3.1.3 有效負載
3.1.4 響應
3.2 CONNACK—確認連接請求
3.2.1 固定頭部
3.2.2 可變頭部
3.2.3 有效負載
3.3 PUBLISH—發布消息
3.3.1 固定頭部
3.3.2 可變頭部
3.3.3 有效負載
3.3.4 響應
3.3.5 行為
3.4 PUBACK-發布確認
3.4.1 固定頭部
3.4.2 可變頭部
3.4.3 有效負載
3.4.4 行為
3.5 PUBREC-獲得發布(獲得QoS2發布,第1部分)
3.5.1 固定頭部
3.5.2 可變頭部
3.5.3 有效負載
3.5.4 行為
3.6 PUBREL-發布釋放(獲得QoS2發布,第2部分)
3.6.1 固定頭部
3.6.2 可變頭部
3.6.3 有效負載
3.6.4 行為
3.7 PUBCOMP-發布完成(獲得QoS2發布,第3部分)
3.7.1 固定頭部
3.7.2 可變頭部
3.7.3 有效負載
3.7.4 行為
3.8 SUBSCRIBE-訂閱主題
3.8.1 固定頭部
3.8.2 可變頭部
3.8.3 有效負載
3.8.4 響應
3.9 SUBACK-訂閱確認
3.9.1 固定頭部
3.9.2 可變頭部
3.9.3 有效負載
3.10 UNSUBSCRIBE-取消訂閱的主題
3.10.1 固定頭部
3.10.2 可變頭部
3.10.3 有效負載
3.10.4 響應
3.11 UNSUBACK—退訂確認
3.11.1 固定頭部
3.11.2 可變頭部
3.11.3 有效負載
3.12 PINGREQ-PING請求
3.12.1 固定頭部
3.12.2 可變頭部
3.12.3 有效負載
3.12.4 響應
3.13 PINGRESP-PING響應
3.13.1 固定頭部
3.13.2 可變頭部
3.13.3 有效負載
3.14 DISCONNECT-斷開通知
3.14.1 固定頭部
3.14.2 可變頭部
3.14.3 有效負載
3.14.4 響應
4 操作行為
4.1 存儲狀態
4.4.1 非標準的例子
4.2 網絡連接
4.3 服務水平質量(QoS)和協議流
4.3.1 QoS 0: 最多一次交付
4.3.2 QoS 1: 至少一次交付
4.3.3 QoS 2: 精準一次交付
4.4 消息交付重試
4.5 消息收據
4.6 消息訂單
4.7 主題名稱和主題過濾器
4.7.1 主題通配符
4.7.2 從$開始的主題
4.7.3 主題語義和用法
4.8 處理錯誤
5 安全
5.1 介紹
5.2 MQTT解決方案:安全性和認證
5.3 輕量級加密和受限的設備
5.4 實現注意事項
5.4.1 服務器對客戶端的身份認證
5.4.2 服務器對客戶端的授權
5.4.3 客戶端對服務器的身份認證
5.4.4 應用程序消息和控制數據包的完整性
5.4.5 應用程序消息和控制數據包的隱秘性
5.4.6 不可抵賴性的消息傳輸
5.4.7 客戶端和服務器違反安全規則的檢測
5.4.8 異常行為的檢測
5.4.9 其他安全注意事項
5.4.10 使用SOCKS
5.4.11 安全性配置文件
6 使用WebSocket作為網絡傳輸
6.1 IANA注意事項
7 一致性
7.1 一致性的目標
7.1.1 MQTT服務器
7.1.2 MQTT客戶端
附錄A 確認(非規范性)
附錄B 強制性的規范的語句(非規范性)
附錄C 修訂歷史(非規范性)