找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2083|回復: 0
收起左側

MQTT協議中文帶注釋版本下載

[復制鏈接]
ID:893874 發(fā)表于 2021-3-19 14:09 | 顯示全部樓層 |閱讀模式
來自Xiaoke的翻譯的非常好的作品,共享給大家學習,他的Github還有更多項目

MQTT是一個客戶端服務端架構的發(fā)布/訂閱模式的消息傳輸協議。它的設計思想是輕巧、開放、簡單、規(guī)范,易于實現。這些特點使得它對很多場景來說都是很好的選擇,特別是對于受限的環(huán)境如機器與機器的通信(M2M)以及物聯網環(huán)境(IoT)。
說明
MQTT英文原版協議提供了Word格式和HTML格式,我翻譯的時候用的Word文檔,之前一直提供的是Word文檔轉換的HTML和PDF供瀏覽和下載,最近花時間整理了Markdown版本,可以更方便的分章節(jié)在線瀏覽了,轉換為Markdown后部分表格的格式不太對,會逐步用圖片代替。
目錄
發(fā)現任何翻譯問題或格式問題歡迎提PR幫忙完善。
51hei.png
說明
前言
目錄
第一章    -    MQTT介紹
第二章    –    MQTT控制報文格式
第三章    –    MQTT控制報文
3.1    CONNECT    –    連接服務端
3.2    CONNACK    –    確認連接請求
3.3    PUBLISH    –    發(fā)布消息
3.4    PUBACK    –發(fā)布確認
3.5    PUBREC    –    發(fā)布收到(QoS    2,第一步)
3.6    PUBREL    –    發(fā)布釋放(QoS    2,第二步)
3.7    PUBCOMP    –    發(fā)布完成(QoS    2,第三步)
3.8    SUBSCRIBE    -    訂閱主題
3.9    SUBACK    –    訂閱確認
3.10    UNSUBSCRIBE    –取消訂閱
3.11    UNSUBACK    –    取消訂閱確認
3.12    PINGREQ    –    心跳請求
3.13    PINGRESP    –    心跳響應
3.14    DISCONNECT    –斷開連接
第四章    –    操作行為
第五章    –    安全
第六章    –    使用WebSocket
第七章    –    一致性目標
附錄B    -    強制性規(guī)范聲明
Github:    https://github.com/mcxiaoke

第一章    概述    Introduction
1.1    MQTT協議的組織結構    Organization    of    MQTT
本規(guī)范分為七個章節(jié):
第一章    –    介紹
第二章    –    MQTT控制報文格式
第三章    –    MQTT控制報文
第四章    –    操作行為
第五章    –    安全
第六章    –    使用WebSocket
第七章    –    一致性目標
附錄B    –    強制性規(guī)范聲明
1.2    術語    Terminology
本規(guī)范中用到的關鍵字    必須    MUST,不能    MUST    NOT,要求    REQUIRED,將會    SHALL,不會    SHALL    NOT,應該    SHOULD,不應該    SHOULD    NOT,推薦    RECOMMENDED,可以MAY,可選    OPTIONAL    都是按照    IETF    RFC    2119    [RFC2119]    中的描述解釋。
網絡連接    Network    Connection
MQTT使用的底層傳輸協議基礎設施。
客戶端使用它連接服務端。
它提供有序的、可靠的、雙向字節(jié)流傳輸。
例子見4.2節(jié)。
應用消息    Application    Message    MQTT協議通過網絡傳輸應用數據。應用消息通過MQTT傳
輸時,它們有關聯的服務質量(QoS)和主題(Topic)。

客戶端    Client
使用MQTT的程序或設備?蛻舳丝偸峭ㄟ^網絡連接到服務端。它可以
發(fā)布應用消息給其它相關的客戶端。
訂閱以請求接受相關的應用消息。
取消訂閱以移除接受應用消息的請求。
從服務端斷開連接。

服務端    Server
一個程序或設備,作為發(fā)送消息的客戶端和請求訂閱的客戶端之間的中介。服務端接受來自客戶端的網絡連接。
接受客戶端發(fā)布的應用消息。
處理客戶端的訂閱和取消訂閱請求。
轉發(fā)應用消息給符合條件的已訂閱客戶端。

訂閱    Subscription
訂閱包含一個主題過濾器(Topic    Filter)和一個最大的服務質量(QoS)等級。訂閱與單個會話(Session)關聯。會話可以包含多于一個的訂閱。會話的每個訂閱都有一個不同的主題過濾器。
主題名    Topic    Name
附加在應用消息上的一個標簽,服務端已知且與訂閱匹配。服務端發(fā)送應用消息的一個副本給每一個匹配的客戶端訂閱。
主題過濾器    Topic    Filter
訂閱中包含的一個表達式,用于表示相關的一個或多個主題。主題過濾器可以使用通配符。
會話    Session
客戶端和服務端之間的狀態(tài)交互。一些會話持續(xù)時長與網絡連接一樣,另一些可以在客戶端和服務端的多個連續(xù)網絡連接間擴展。
控制報文    MQTT    Control    Packet
通過網絡連接發(fā)送的信息數據包。MQTT規(guī)范定義了十四種不同類型的控制報文,其中一個(PUBLISH報文)用于傳輸應用消息。

1.5    數據表示    Data    representations
1.5.1    二進制位    Bits
字節(jié)中的位從0到7。第7位是最高有效位,第0位是最低有效位。
1.5.2    整數數值    Integer    data    values
整數數值是16位,使用大端序(big-endian,高位字節(jié)在低位字節(jié)前面)。這意味著一個16位
的字在網絡上表示為最高有效字節(jié)(MSB),后面跟著最低有效字節(jié)(LSB)。
1.5.3    UTF-8編碼字符串    UTF-8    encoded    strings
后面會描述的控制報文中的文本字段編碼為UTF-8格式的字符串。UTF-8    [RFC3629]    是一個
高效的Unicode字符編碼格式,為了支持基于文本的通信,它對ASCII字符的編碼做了優(yōu)化。
51hei.png
UTF-8編碼字符串中的字符數據必須是按照Unicode規(guī)范    [Unicode]    定義的和在RFC3629
[RFC3629]    中重申的有效的UTF-8格式。特別需要指出的是,這些數據不能包含字符碼在U+D800和U+DFFF之間的數據。如果服務端或客戶端收到了一個包含無效UTF-8字符的控制報文,它必須關閉網絡連接    [MQTT-1.5.3-1]。
UTF-8編碼的字符串不能包含空字符U+0000。如果客戶端或服務端收到了一個包含U+0000的控制報文,它必須關閉網絡連接    [MQTT-1.5.3-2]。
數據中不應該包含下面這些Unicode代碼點的編碼。如果一個接收者(服務端或客戶端)收到了包含下列任意字符的控制報文,它可以關閉網絡連接:
U+0001和U+001F之間的控制字符
U+007F和U+009F之間的控制字符
Unicode規(guī)范定義的非字符代碼點(例如U+0FFFF)
Unicode規(guī)范定義的保留字符(例如U+0FFFF)
UTF-8編碼序列0XEF    0xBB    0xBF總是被解釋為U+FEFF(零寬度非換行空白字符),無論它出現在字符串的什么位置,報文接收者都不能跳過或者剝離它    [MQTT-1.5.3-3]。

完整的pdf格式文檔51黑下載地址:
Xiaoke作品: MQTT協議_CN_注釋.pdf (3.87 MB, 下載次數: 44)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表