SUBACK 數據包由服務器發送到客戶端以確認 SUBSCRIBE 數據包的接收和處理。
SUBACK 數據包包含返回代碼列表,指定在 SUBSCRIBE 請求的每個訂閱中授予的最大 QoS 級別
1. 固定包頭 Fixed header
固定包頭的剩餘長度= 可變包頭(2字節)+ Payload 長度
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
byte 1 |
MQTT Control Packet type (9) |
Reserved |
||||||
|
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
byte 2 |
Remaining Length |
2. 可變包頭 Variable header
SUBACK 消息的可變包頭用來傳輸2個字節的數據包標識符 PacketIdentifier
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
byte 1 |
Packet Identifier MSB |
|||||||
byte 2 |
Packet Identifier LSB |
3. 載荷Payload
Payload 包含返回代碼列表。 每個返回代碼對應於被確認的訂閱數據包中的主題過濾器。 SUBACK 數據包中返回碼的順序必須與 SUBSCRIBE 數據包中主題過濾器的順序匹配
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
Return Code |
|||||||
byte 1 |
X |
0 |
0 |
0 |
0 |
0 |
X |
X |
返回碼如果bit7=1 表示訂閱失敗,可能的訂閱返回碼如下
0x00 - Success - Maximum QoS 0
0x01 - Success - Maximum QoS 1
0x02 - Success - Maximum QoS 2
0x80 - Failure