3.9 SUBACK - 訂閱確認
服務器將SUBACK數據包發送給客戶端以確認接收和處理SUBSCRIBE數據包。
SUBACK數據包包含一個返回代碼列表,用於指定SUBSCRIBE請求的每個Subscription中授予的最大QoS級別。
3.9.1 Fixed Header 固定標題
位 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
字節1 |
MQTT控制包類型(9) |
保留的 |
||||||
|
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
字節2 |
剩餘長度 |
剩餘長度字段
這是變量頭的長度(2個字節)加上有效載荷的長度。
3.9.2 Varliable Header 變量頭
變量頭包含來自正被確認的SUBSCRIBE分組的分組標識符。圖3.25-下面的變量頭格式說明了變量頭的格式。
位 |
7 |
6 |
五 |
4 |
3 |
2 |
1 |
0 |
字節1 |
包標識符MSB |
|||||||
字節2 |
包標識符LSB |
3.9.3 Payload 有效載荷
有效負載包含返回代碼列表。每個返回碼對應於被確認的SUBSCRIBE包中的主題過濾器。SUBACK數據包中的返回碼順序必須與SUBSCRIBE數據包 [MQTT-3.9.3-1]中的主題過濾器的順序相匹配。
圖3.26 - 下面的有效載荷格式說明了在有效載荷中以字節編碼的返回碼字段。
位 |
7 |
6 |
五 |
4 |
3 |
2 |
1 |
0 |
|
返回代碼 |
|||||||
字節1 |
X |
0 |
0 |
0 |
0 |
0 |
X |
X |
允許的返回碼:
0x00 - 成功 - 最大QoS 0
0x01 - 成功 - 最大QoS 1
0x02 - 成功 - 最大QoS 2
0x80 - 失敗
除0x00,0x01,0x02和0x80以外的SUBACK返回碼保留,不得使用 [MQTT-3.9.3-2] 。
圖3.27 - 有效載荷字節格式非規範性示例 顯示了表3.6中簡要描述的SUBACK數據包的有效載荷- 有效載荷非規範示例。
成功 - 最大QoS 0 |
0 |
成功 - 最大QoS 2 |
2 |
失敗 |
128 |
|
描述 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
字節1 |
成功 - 最大QoS 0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
字節2 |
成功 - 最大QoS 2 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
字節3 |
失敗 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |