freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

20xx年mqttv31協(xié)議規(guī)范(中文版)-全文預(yù)覽

2025-02-18 11:35 上一頁面

下一頁面
  

【正文】 是,如果一個(gè)服務(wù)器實(shí)現(xiàn)對(duì)某個(gè)客戶端發(fā)送的一個(gè) PUBLISH 消息不允許授權(quán),它沒有辦法通知客戶端。 QoS 2 將消息持久化存儲(chǔ),先不將消息發(fā)送給所有相關(guān)的部分,而是先回復(fù) PUBREC 消息給發(fā)送者。 動(dòng)作( Action) PUBLISH 消息可以由發(fā)布者客戶端發(fā)給服務(wù)器,也可以由服務(wù)器發(fā)給訂閱者客戶端。固定頭部中的剩余長度字段的值包括可變頭部和有效載荷。 下表是一個(gè) PUBLISH 消息例子的可變頭部。 不允許出現(xiàn)主題通配符字符。詳見 RETAIN。表示該消息是第一次發(fā)送。 固定頭部( Fixed header) 固定頭 部的格式如下表所示。主題名是一個(gè)層次性的空間,它將訂閱者感興趣的信息資源進(jìn)行分類。 如果客戶端 ID 的長度不在 123 字節(jié)之間,服務(wù)器則會(huì)發(fā)送返回碼 2(標(biāo)識(shí)符被拒絕)。 固定頭部( Fixed header) 固定頭部的格式如下表所示。 如果嘗試連接的客戶端 ID 在服務(wù)器中已經(jīng)存在,則服務(wù)器會(huì)斷開 “舊 ”的客戶端并與新的客戶端完成連接操作。 如果在 TCP/IP連接建立后的一段合理時(shí)間內(nèi)服務(wù)器沒有收到客戶端發(fā)送的 CONNECT 消息,則服務(wù)器應(yīng)該關(guān)閉這個(gè)連接。 值得注意的是,為了與 MQTT V3 版本協(xié)議兼容( V3 中不支持用戶名密碼), 固定頭部中的剩余長度字段的優(yōu)先級(jí)應(yīng)該高于密碼標(biāo)志。這是合法的,連接應(yīng)該繼續(xù)進(jìn)行。用戶名字段用于認(rèn)證,標(biāo)明了連接的用戶的名字。當(dāng)然,消息內(nèi)容可以為空(消息長度為 0,但該字符串仍包含 2 個(gè)字節(jié)以記錄其長度為 0)。 Will 消息將會(huì)發(fā)送給Will 主題??蛻舳?ID(Client ID)的長度為 1 至 23個(gè)字符,服務(wù)器根據(jù)客戶端 ID 可以指定到唯一的客戶端。 Clean session 標(biāo)志 置位( 1)。剩余長度字段自身的長度可能大于 1 個(gè)字節(jié)。 3. 命令消息( Command messages) CONNECT 客戶端請求連接服務(wù)器 當(dāng)客戶端與服務(wù)器的 TCP/IP 套接字連接建立起來之后,必須發(fā)送一個(gè) CONNECT 消息流來建立一個(gè)協(xié)議級(jí)別的會(huì)話。 字符串長度表示所有字符經(jīng)過 UTF8編碼后的字節(jié)數(shù),而不是字符串中字符的個(gè)數(shù)。 不要使用值為 0 的消息 ID。它通常是逐個(gè)消息遞增的,但不強(qiáng)制如此。 消息標(biāo)識(shí)符( Message Identifiers) 消息標(biāo)識(shí)符用于以下 MQTT 消息的可變頭部中: PUBLISH, PUBACK, PUBREC, PUBREL,PUBCOMP, SUBSCRIBE, SUBACK, UNSUBSCRIBE, UNSUBACK。 PUBLISH 該有效載荷只包含應(yīng)用特定的數(shù)據(jù)。這些字符串都是 UTF編碼的。 有效載荷( Payload) 以下類型的 MQTT 命令消息擁有一個(gè)有效載荷: CONNECT 該有效載荷包含了一個(gè)或多個(gè) UTF8編碼字符串。訂閱者使用主題名來決定他們要從哪些信息通道接收消息。這些值的含義如下表所示。 ?;钣?jì)時(shí)器的格式如下表所示。 如果客戶端在發(fā)送 PINGQ 后的一個(gè)?;顣r(shí)間內(nèi)沒有收到服務(wù)器發(fā)來的 PINGRESP 消息,則客戶端可以關(guān)閉 TCP/IP 套接字連接。如果這期間沒有業(yè)務(wù)相關(guān)的消息要發(fā)送,客戶端則發(fā)送一個(gè) PINGREQ 消息給服務(wù)器,相應(yīng)地服務(wù)器返回一個(gè) PINGRESQ 消息給客戶端。 ?;钣?jì)時(shí)器( Keep Alive timer) ?;钣?jì)時(shí)器用于 MQTT CONNECT 消息的可變頭部中。 如果將用戶名標(biāo)志置位,則必須在有效載荷里填寫用戶名字段,否則用戶名字段將被忽略。 如果 Will 標(biāo)志被置位,則 Will Retain 標(biāo)志必須填寫,否則其將被忽略。 如果 Will 標(biāo)志被置位,則 Will QoS 字段必須填寫,否則該字段的值將被忽略。 Will 標(biāo)志的格式如下表所示。 連接標(biāo)志中的第 0 位在目前協(xié)議版本中沒有使用到,保留為將來使用。 QoS 0 級(jí)別的消息由于只是盡可能的交付,所以它永遠(yuǎn)不會(huì)被存儲(chǔ)保持。 通常情況下,客戶端會(huì)一直在其中一種模式下操作,不會(huì)進(jìn)行切換。 Clean session 標(biāo)志 位置 : bit 1(在連接標(biāo)志字節(jié)中,下同) 如果沒有被置位(即值為 0),則當(dāng)客戶端斷線時(shí),服務(wù)器必須保存該客戶端的訂閱信息,包括斷線期間發(fā)布的該客戶端訂閱的主題中交付質(zhì)量級(jí)別為 QoS 1 和 QoS2 的消息,這樣當(dāng)客戶端重連時(shí),這部分消息能確保被送達(dá)到客戶端。 協(xié)議版本( Protocol version) 協(xié)議版本字段只用于 MQTT CONNECT 消息的可變頭部中。更多細(xì)節(jié)可可見 固定頭部 。 可變頭部( Variable header) 某些類型的 MQTT 命令消息還包含了一個(gè)可變頭部,它位于固定頭部和有效載荷之間。 值得注意的是,剩余長度編碼不是可變頭部的一部分。next digit from stream39。 do digit = X MOD 128 X = X DIV 128 // if there are more digits to encode, set the top bit of this digit if ( X 0 ) digit = digit OR 0x80 endif 39。 十進(jìn)制數(shù)字 321( =65 + 2x128)則需要用 2 個(gè)字節(jié)來編碼,其中第 1 個(gè)字節(jié)為 1100 0001,該字節(jié)的低 7 位表示 65,第 8位表示后面還有字節(jié);第 2 個(gè)字節(jié)為 0000 0010,表示 2x128。該可變長度編碼方案如下:每個(gè)字節(jié)的低 7位( 70 位)編碼剩余長度的數(shù)據(jù),第 8位表示后面是否還有編碼剩余長度的字節(jié)。 保持消息應(yīng)當(dāng)在重啟服務(wù)器后仍能保留。 當(dāng)消息發(fā)布者以基于 “report by exception” 的方式發(fā)送消息時(shí),這個(gè)功能就特別有用,因?yàn)檫@種情況下,消息發(fā)送間隔往往較長。 RETAIN 位置 : byte 1, bit 0 該標(biāo)志位只用于 PUBLISH 消息。當(dāng) DUP 位被置位時(shí),可變頭部將包含一個(gè)消息 ID。 0:保留 1:客戶端請求連接服務(wù)器 2:連接確認(rèn) 3:發(fā)布消息 4:發(fā)布確認(rèn) 5:發(fā)布接收(有保證的交付第 1部分) 6:發(fā)布釋放(有保證的交付第 2部分) 7:發(fā)布完成(有保證的交付第 3部分) 8:客戶端訂閱請求 9:訂閱確認(rèn) 10:客戶端取消訂閱請求 11:取消訂閱確認(rèn) 12: PING 請求 13: PING 回復(fù) 14:客戶端斷開連接 15:保留 標(biāo)志位( Flags) 固定頭部第 1 個(gè)字節(jié)中剩余的部分包含 DUP, QoS 和 RETAIN 標(biāo)志字段。所有數(shù)據(jù)的值都是以 bigendian(大端)模式存儲(chǔ):數(shù)據(jù)的高位字節(jié)存放在內(nèi)存的低地址中,數(shù)據(jù)的低位字節(jié)存放在內(nèi)存高地址中。固定頭部的格式如下表如示。 2. 消息格式 每個(gè) MQTT 命令消息的消息頭部都包含了一個(gè)固定頭部。而且即使命令未被執(zhí)行,該 MQTT 流也應(yīng)該正常完成。 NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. THE AUTHORS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THE SPECIFICATION. The name and trademarks of the Authors may NOT be used in any manner, including advertising or publicity pertaining to the Specification or its contents without specific, written prior permission. Title to copyright in the Specification will at all times remain with the Authors. No other rights are granted by implication, estoppel or otherwise. 目錄 1. 簡介 ? 與 V3 之間的變化 2. 消息格式 ? 固定頭部 ? 可變頭部 ? 有效載荷 ? 消息標(biāo)識(shí)符 ? MQTT 和 UTF8 ? 未使用的位 3. 命令消息 ? CONNECT ? CONNACK ? PUBLISH ? PUBACK ? PUBREC ? PUBREL ? PUBCOMP ? SUBSCRIBE ? SUBACK ? UNSUBSCRIBE ? UNSUBACK ? PINGREQ ? PINGRESP ? DISCONNECT 4. 消息流 ? 交付質(zhì)量級(jí)別和消息流 ? 消息重傳 ? 消息排序 5. 附錄 A 主題通配符 1. 簡介 該協(xié)議規(guī)范主要分為 3 個(gè)主要部分: ? 對(duì)所有類型的數(shù)據(jù)包都通用的消息格式 ? 每種特定數(shù)據(jù)包的具體細(xì)節(jié) ? 數(shù)據(jù)包如何在服務(wù)器和客戶端之間傳輸 在附錄中將介紹如何主題通配符( topic wildcards)的使用方法。 版權(quán)聲明 169。 ? “只有一次 ”,確保消息到達(dá)且只到達(dá)一次。 ? 有 3 個(gè)消息發(fā)布服務(wù)質(zhì)量級(jí)別: ? “至多一次 ”,消息發(fā)布完全依賴于底層 TCP/IP 網(wǎng)絡(luò)。 ? 在嵌入設(shè)備中運(yùn)行,處理器和內(nèi)存資源有限。這些特征使它適用于各種受限環(huán)境,比如,但不限于: ? 網(wǎng)絡(luò)代價(jià)昂貴,低帶寬或不可靠。 ? 使用 TCP/IP 提供基礎(chǔ)網(wǎng)絡(luò)連接。 ? “至少一次 ”,確保消息到達(dá),但消息重復(fù)有可能發(fā)生。 ? 提供一種機(jī)制,當(dāng)客戶端異常中斷時(shí),利用 Last Will 和 Testament 特性 來通知有關(guān)各方。 THAT THE CONTENTS OF THE SPECIFICATION ARE SUITABLE FOR ANY PURPOSE。 ? 當(dāng)客戶端發(fā)送未授權(quán)的 PUBLISH 或 SUBSCRIBE 命令時(shí),客戶端不會(huì)收到相應(yīng)的通知,即客戶端不知道命令不會(huì)被執(zhí)行?,F(xiàn)存的基于 MQTT V3 的服務(wù)器實(shí)現(xiàn)須通過正確考慮 “剩余長度( Remaining Length)字段 ”,以及相應(yīng)地忽略多余的安全信息來接受來自 協(xié)議的客戶端的連接。 固定頭部( Fixed header)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1