溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

MQTT 5.0原因碼與ACK是什么

發(fā)布時(shí)間:2021-12-07 09:52:51 來(lái)源:億速云 閱讀:332 作者:iii 欄目:互聯(lián)網(wǎng)科技

這篇文章主要介紹“MQTT 5.0原因碼與ACK是什么”,在日常操作中,相信很多人在MQTT 5.0原因碼與ACK是什么問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”MQTT 5.0原因碼與ACK是什么”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

MQTT v3.1.1

MQTT v3.1.1 協(xié)議只有 10 種返回碼,這些返回碼所能表示的含義很少,且相同的返回碼的值在不同的報(bào)文中可以有不同的含義。

CONNACK 報(bào)文

在 CONNECT 報(bào)文中只有 6 種返回碼,只有當(dāng)服務(wù)器發(fā)回的 CONNACK 報(bào)文的返回碼為 0時(shí)才表示連接建立成功。

返回碼描述
00x00 接受連接接受連接
10x01 拒絕連接,不支持的協(xié)議版本服務(wù)器不支持該客戶(hù)端請(qǐng)求的 MQTT 協(xié)議
20x02 拒絕連接, 拒絕的客戶(hù)端 ID客戶(hù)端 ID 是正確的 UTF-8 字符串,但是不被服務(wù)器允許
30x03 拒絕連接,服務(wù)器不可用網(wǎng)絡(luò)連接已經(jīng)建立,但是 MQTT 服務(wù)不可用
40x04 拒絕連接,損壞的用戶(hù)名或密碼在用戶(hù)名或密碼中的數(shù)據(jù)是錯(cuò)誤格式的
50x05 拒絕連接,未授權(quán)客戶(hù)端的連接未被授權(quán)
6-255
預(yù)留給將來(lái)使用

SUBACK 報(bào)文

在 SUBACK 報(bào)文中只有 4 種返回碼

返回碼描述
00x00 成功最大允許 QoS 0 的消息
10x01 成功最大允許 QoS 1 的消息
20x02 成功最大允許 QoS 2 的消息
1280x80 失敗失敗

SUBACK 報(bào)文有四種返回碼,除了返回碼 0x80 表示失敗,其他返回碼都表示訂閱成功, 3 個(gè)值 0, 1, 2 分別代表訂閱接收到的消息的最大 QoS 值。

MQTT v5.0

MQTT v5.0 協(xié)議將返回碼改名成了原因碼,增加了用于表示更多類(lèi)型的錯(cuò)誤的原因碼。

下表是原因碼列表,分別表示的是原因碼的值以及包含原因碼的控制報(bào)文:

十進(jìn)制十六進(jìn)制名稱(chēng)報(bào)文
00x00成功 (Success)CONNACK, PUBACK, PUBREC, PUBREL, PUBCOMP, UNSUBACK, AUTH
00x00準(zhǔn)許 QoS 0 (Granted QoS 0)SUBACK
10x01準(zhǔn)許 QoS 1 (Granted QoS 1)SUBACK
20x02準(zhǔn)許 QoS 2 (Granted QoS 2)SUBACK
40x04以遺囑消息斷開(kāi)連接 (Disconnect with Will Message)DISCONNECT
160x10沒(méi)有匹配的訂閱者 (No matching subscribers)PUBACK, PUBREC
170x11沒(méi)有訂閱 (No subscription existed)UNSUBACK
240x18繼續(xù)認(rèn)證 (Continue authentication)AUTH
250x19重新認(rèn)證 (Re-authenticate)AUTH
1280x80未指定錯(cuò)誤 (Unspecified error)CONNACK, PUBACK, PUBREC, SUBACK, UNSUBACK, DISCONNECT
1290x81畸形報(bào)文 (Malformed Packet)CONNACK, DISCONNECT
1300x82協(xié)議錯(cuò)誤 (Protocol Error)CONNACK, DISCONNECT
1310x83實(shí)現(xiàn)特有錯(cuò)誤 (Implementation specific error)CONNACK, PUBACK, PUBREC, SUBACK, UNSUBACK, DISCONNECT
1320x84不支持的協(xié)議版本 (Unsupported Protocol Version)CONNACK
1330x85客戶(hù)端標(biāo)識(shí)符無(wú)效 (Client Identifier not valid)CONNACK
1340x86錯(cuò)誤的用戶(hù)名和密碼 (Bad User Name or Password)CONNACK
1350x87未授權(quán) (Not authorized)CONNACK, PUBACK, PUBREC, SUBACK, UNSUBACK, DISCONNECT
1360x88服務(wù)器不可用 (Server unavailable)CONNACK
1370x89服務(wù)器繁忙 (Server busy)CONNACK, DISCONNECT
1380x8A禁止訪(fǎng)問(wèn) (Banned)CONNACK
1390x8B服務(wù)器關(guān)機(jī)中 (Server shutting down)DISCONNECT
1400x8C錯(cuò)誤驗(yàn)證方法 (Bad authentication method)CONNACK, DISCONNECT
1410x8D?;畛瑫r(shí) (Keep Alive timeout)DISCONNECT
1420x8E會(huì)話(huà)被接管 (Session taken over)DISCONNECT
1430x8F主題過(guò)濾器無(wú)效 (Topic Filter invalid)SUBACK, UNSUBACK, DISCONNECT
1440x90主題名無(wú)效 (Topic Name invalid)CONNACK, PUBACK, PUBREC, DISCONNECT
1450x91報(bào)文標(biāo)識(shí)符在使用中 (Packet Identifier in use)PUBACK, PUBREC, SUBACK, UNSUBACK
1460x92沒(méi)有發(fā)現(xiàn)報(bào)文標(biāo)識(shí)符 (Packet Identifier not found)PUBREL, PUBCOMP
1470x93超出接收最大值 (Receive Maximum exceeded)DISCONNECT
1480x94主題別名無(wú)效 (Topic Alias invalid)DISCONNECT
1490x95報(bào)文太大 (Packet too large)CONNACK, DISCONNECT
1500x96消息傳輸速率太高 (Message rate too high)DISCONNECT
1510x97超出限額 (Quota exceeded)CONNACK, PUBACK, PUBREC, SUBACK, DISCONNECT
1520x98管理行為 (Administrative action)DISCONNECT
1530x99有效載荷格式無(wú)效 (Payload format invalid)PUBACK, PUBREC, DISCONNECT
1540x9A不支持消息保留 (Retain not supported)CONNACK, DISCONNECT
1550x9B不支持的QoS (QoS not supported)CONNACK, DISCONNECT
1560x9C使用另一臺(tái)服務(wù)器 (Use another server)CONNACK, DISCONNECT
1570x9D服務(wù)器被移除 (Server moved)CONNACK, DISCONNECT
1580x9E不支持的共享訂閱 (Shared Subscription not supported)SUBACK, DISCONNECT
1590x9F超出連接速率 (Connection rate exceeded)CONNACK, DISCONNECT
1600xA0最大連接時(shí)間 (Maximum connect time)DISCONNECT
1610xA1不支持的訂閱標(biāo)識(shí)符 (Subscription Identifiers not supported)SUBACK, DISCONNECT
1620xA2不支持的通配符訂閱 (Wildcard Subscription not supported)SUBACK, DISCONNECT

原因碼是用來(lái)表明操作結(jié)果的一個(gè)單字節(jié)無(wú)符號(hào)值,小于 0x80 的原因碼表明操作的結(jié)果是成功的,正常情況下,操作成功返回的原因碼值為 0。 如果返回的原因碼大于等于 0x80,就說(shuō)明操作失敗了。

CONNACK, PUBACK, PUBREC, PUBREL, PUBCOMP, DISCONNECT 和 AUTH 控制報(bào)文的原因碼存在可變報(bào)頭中。而 SUBACK 和 UNSUBACK 報(bào)文在有效載荷中包含了一張?jiān)虼a的列表。

到此,關(guān)于“MQTT 5.0原因碼與ACK是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI