IOT-MQTT協議-控制數據包-SUBACK

3.9 SUBACK - 訂閱確認

服務器將SUBACK數據包發送給客戶端以確認接收和處理SUBSCRIBE數據包。

 

SUBACK數據包包含一個返回代碼列表,用於指定SUBSCRIBE請求的每個Subscription中授予的最大QoS級別。

3.9.1 Fixed Header 固定標題

圖3.24 - SUBACK數據包固定標頭

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-下面的變量頭格式說明了變量頭的格式

圖3.25 - SUBACK數據包變量頭

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 - 下面的有效載荷格式說明了在有效載荷中以字節編碼的返回碼字段。

圖3.26 - SUBACK數據包有效載荷格式

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.9.3.1有效載荷非規範性示例

圖3.27 - 有效載荷字節格式非規範性示例 顯示了表3.6中簡要描述的SUBACK數據包的有效載荷- 有效載荷非規範示例

表3.6 - 有效載荷非規範性示例

成功 - 最大QoS 0 

0

成功 - 最大QoS 2 

2

失敗 

128

圖3.27 - 有效載荷字節格式非規範性示例

 

描述

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章