From ee53ecab472779f645456136802f5a6904e35da5 Mon Sep 17 00:00:00 2001 From: mcxiaoke Date: Sat, 6 Feb 2016 10:48:16 +0800 Subject: [PATCH] add english word for section title, tweak links --- README.md | 4 ++- mqtt/00-Contents.md | 4 ++- mqtt/00-Preface.md | 31 ++++++++++-------- mqtt/01-Introduction.md | 54 +++++++++++++++--------------- mqtt/02-ControlPacketFormat.md | 45 +++++++++++++------------ mqtt/03-ControlPackets.md | 37 ++++++++++++--------- mqtt/0301-CONNECT.md | 40 +++++++++++++---------- mqtt/0302-CONNACK.md | 42 ++++++++++++++---------- mqtt/0303-PUBLISH.md | 42 ++++++++++++++---------- mqtt/0304-PUBACK.md | 42 ++++++++++++++---------- mqtt/0305-PUBREC.md | 42 ++++++++++++++---------- mqtt/0306-PUBREL.md | 42 ++++++++++++++---------- mqtt/0307-PUBCOMP.md | 42 ++++++++++++++---------- mqtt/0308-SUBSCRIBE.md | 42 ++++++++++++++---------- mqtt/0309-SUBACK.md | 42 ++++++++++++++---------- mqtt/0310-UNSUBSCRIBE.md | 42 ++++++++++++++---------- mqtt/0311-UNSUBACK.md | 42 ++++++++++++++---------- mqtt/0312-PINGREQ.md | 42 ++++++++++++++---------- mqtt/0313-PINGRESP.md | 42 ++++++++++++++---------- mqtt/0314-DISCONNECT.md | 60 ++++++++++++++++++++++++---------- mqtt/04-OperationalBehavior.md | 6 ++++ mqtt/05-Security.md | 6 ++++ mqtt/06-WebSocket.md | 6 ++++ mqtt/07-Conformance.md | 6 ++++ mqtt/08-AppendixB.md | 5 +++ 25 files changed, 492 insertions(+), 316 deletions(-) diff --git a/README.md b/README.md index 8ff1d87..51e8e20 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议 ## 在线阅读 -**最新版本: v1.0.2 2016.02.04** +**最新版本: v1.0.3 2016.02.06** >MQTT英文原版协议提供了Word格式和HTML格式,我翻译的时候用的Word文档,之前一直提供的是Word文档转换的HTML和PDF共浏览和下载,最近花时间整理了Markdown版本,可以更方便的分章节在线浏览了,转换为Markdown后大部分表格的格式都不太对,会逐步用图片代替。 @@ -69,3 +69,5 @@ MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议 * Volley镜像: ------ + + diff --git a/mqtt/00-Contents.md b/mqtt/00-Contents.md index a7f234f..45ee703 100644 --- a/mqtt/00-Contents.md +++ b/mqtt/00-Contents.md @@ -1,4 +1,4 @@ -# 目录 +# MQTT协议目录 - [前言](00-Preface.md) - [目录](00-Contents.md) @@ -10,3 +10,5 @@ - [第六章 – 使用WebSocket](06-WebSocket.md) - [第七章 – 一致性目标](07-Conformance.md) - [附录B - 强制性规范声明](08-AppendixB.md) + + diff --git a/mqtt/00-Preface.md b/mqtt/00-Preface.md index 697dc32..d512e76 100644 --- a/mqtt/00-Preface.md +++ b/mqtt/00-Preface.md @@ -2,9 +2,9 @@ * [OASIS标准](https://www.oasis-open.org/committees/mqtt/) 2014年10月29日 -## 规范链接 +## 规范链接 (Specification URIs) -### 当前版本: +### 当前版本(This version): (Authoritative) @@ -12,7 +12,7 @@ -### 以前的版本: +### 以前的版本(Previous version): (Authoritative) @@ -20,7 +20,7 @@ -### 最新版本: +### 最新版本(Latest version): (Authoritative) @@ -28,29 +28,29 @@ -### 技术委员会: +### 技术委员会(Technical Committee): [结构化信息标准促进组织MQTT技术委员会](https://www.oasis-open.org/committees/mqtt/) -#### 主席: +#### 主席(Chairs): 拉斐尔·J·科恩 (), 个人 理查德·J·科彭 (), [IBM](http://www.ibm.com/) -#### 编辑: +#### 编辑(Editors): 安德鲁·班克斯 (), [IBM](http://www.ibm.com/) 拉胡尔·吉普塔 (), [IBM](http://www.ibm.com/) -### 相关文档: +### 相关文档(Related work): #### 本规范与此有关: - MQTT和NIST网络安全框架1.0版。 编辑是杰夫·布朗和路易·菲利普·拉穆勒。最新版本: . -#### 摘要 +### 摘要 (Abstract) MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范,因此易于实现。这些特点使得它对很多场景来说都是很好的选择,包括受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT),这些场景要求很小的代码封装或者网络带宽非常昂贵。 @@ -66,7 +66,7 @@ MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议 - 很小的传输消耗和协议数据交换,最大限度减少网络流量 - 异常连接断开发生时,能通知到相关各方。 -### 状态 +### 状态 (Status) 本文档最后由OASIS成员在上面标示的日期最终修订或批准。批准的级别也在上面列出了。如果要查看本文档最新的修订版请检查上面的 *最新版本* 位置。技术委员会产生的其它修订版和其它技术文档都列在这里: 。 @@ -74,7 +74,7 @@ MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议 关于实现本规范必不可少的任何专利是否已公开,以及其它的专利许可条款相关的信息,请参考技术委员会网站的知识产权部分(()。 -### 引用格式: +### 引用格式(Citation format): 引用此规范时应该使用下面的引文格式: @@ -85,17 +85,18 @@ MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议 ### 文档链接 - [MQTT协议3.1.1中文翻译项目](https://github.com/mcxiaoke/mqtt) - - [MQTT协议3.1.1中文版PDF](https://github.com/mcxiaoke/mqtt/blob/master/protocol/MQTT-3.1.1-CN.pdf) -### 修订记录 +## 修订记录 | **版 本** | **日 期** | **发布说明** | |-----------|------------|------------------------------------------| | 1.0.0 | 2015-07-30 | 翻译全部文本,完成初步审校,公开发布第一版 | | 1.0.1 | 2015-10-22 | 修订几处笔误,增补几处未翻译的文本 | +| 1.0.2 | 2016-02-04 | 转换为Markdown格式,发布更有好的在线阅读版本 | +| 1.0.3 | 2016-02-06 | 补充中英文对照,修正部分链接和格式 | -### 关于译者 +## 译者 - [GitHub](https://github.com/mcxiaoke) - [Blog](http://blog.mcxiaoke.com/) @@ -111,3 +112,5 @@ MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议 - [第六章 – 使用WebSocket](06-WebSocket.md) - [第七章 – 一致性目标](07-Conformance.md) - [附录B - 强制性规范声明](08-AppendixB.md) + + diff --git a/mqtt/01-Introduction.md b/mqtt/01-Introduction.md index 5358933..f24b28b 100644 --- a/mqtt/01-Introduction.md +++ b/mqtt/01-Introduction.md @@ -1,6 +1,6 @@ -# 第一章 概述 +# 第一章 概述 Introduction -## 1.1 MQTT协议的组织结构 +## 1.1 MQTT协议的组织结构 Organization of MQTT 本规范分为七个章节: @@ -13,72 +13,65 @@ - [第七章 – 一致性目标](07-Conformance.md) - [附录B - 强制性规范声明](08-AppendixB.md) -## 1.2 术语 +## 1.2 术语 Terminology 本规范中用到的关键字 **必须** MUST,**不能** MUST NOT,**要求** REQUIRED,**将会** SHALL,**不会** SHALL NOT,**应该** SHOULD,**不应该** SHOULD NOT,**推荐** RECOMMENDED,**可以** MAY,**可选** OPTIONAL 都是按照 IETF RFC 2119 [\[RFC2119\]](#anchor-RFC2119) 中的描述解释。 -**网络连接(Network Connection):** +**网络连接 Network Connection** MQTT使用的底层传输协议基础设施。 - 客户端使用它连接服务端。 - - 它提供有序的、可靠的、双向字节流传输。 例子见4.2节。 -**应用消息(Application Message):** +**应用消息 Application Message** MQTT协议通过网络传输应用数据。应用消息通过MQTT传输时,它们有关联的服务质量(QoS)和主题(Topic)。 -**客户端(Client):** +**客户端 Client** 使用MQTT的程序或设备。客户端总是通过网络连接到服务端。它可以 - 发布应用消息给其它相关的客户端。. - - 订阅以请求接受相关的应用消息 - - 取消订阅以移除接受应用消息的请求。 - - 从服务端断开连接。 -**服务端(Server):** +**服务端 Server** 一个程序或设备,作为发送消息的客户端和请求订阅的客户端之间的中介。服务端 - 接受来自客户端的网络连接 - - 接受客户端发布的应用消息 - - 处理客户端的订阅和取消订阅请求。 - - 转发应用消息给符合条件的客户端订阅。 -**订阅(Subscription):** +**订阅 Subscription** 订阅包含一个主题过滤器(Topic Filter)和一个最大的服务质量(QoS)等级。订阅与单个会话(Session)关联。会话可以包含多于一个的订阅。会话的每个订阅都有一个不同的主题过滤器。 -**主题名(Topic Name):** +**主题名 Topic Name** **附加在应用消息上的一个标签,服务端已知且与订阅匹配。服务端发送应用消息的一个副本给每一个匹配的客户端订阅。 -**主题过滤器(Topic Filter:):** +**主题过滤器 Topic Filter** 订阅中包含的一个表达式,用于表示相关的一个或多个主题。主题过滤器可以使用通配符。 -**会话(Session):** +**会话 Session** **客户端和服务端之间的状态交互。一些会话持续时长与网络连接一样,另一些可以在客户端和服务端的多个连续网络连接间扩展。 -**控制报文(MQTT Control Packet):** +**控制报文 MQTT Control Packet** 通过网络连接发送的信息数据包。MQTT规范定义了十四种不同类型的控制报文,其中一个(PUBLISH报文)用于传输应用消息。 -## 1.5 数据表示 +## 1.5 数据表示 Data representations -### 1.5.1 二进制位 +### 1.5.1 二进制位 Bits 字节中的位从0到7。第7位是最高有效位,第0位是最低有效位。 -### 1.5.2 整数数值 +### 1.5.2 整数数值 Integer data values 整数数值是16位,使用大端序(big-endian,高位字节在低位字节前面)。这意味着一个16位的字在网络上表示为最高有效字节(MSB),后面跟着最低有效字节(LSB)。 -### 1.5.3 UTF-8编码字符串 +### 1.5.3 UTF-8编码字符串 UTF-8 encoded strings 后面会描述的控制报文中的文本字段编码为UTF-8格式的字符串。UTF-8 \[[RFC3629](#RFC3629)\] 是一个高效的Unicode字符编码格式,为了支持基于文本的通信,它对ASCII字符的编码做了优化。 @@ -86,7 +79,7 @@ MQTT协议通过网络传输应用数据。应用消息通过MQTT传输时,它 除非另有说明,所有的UTF-8编码字符串的长度都必须在0到65535字节这个范围内。 -##### 图例 1.1 UTF-8编码字符串的结构 +##### 图例 1.1 UTF-8编码字符串的结构 Structure of UTF-8 encoded strings | **二进制位** | 7-0 | |--------------|----------------------------| @@ -107,11 +100,11 @@ UTF-8编码的字符串**不能**包含空字符U+0000。如果客户端或服 UTF-8编码序列0XEF 0xBB 0xBF总是被解释为U+FEFF(零宽度非换行空白字符),无论它出现在字符串的什么位置,报文接收者都不能跳过或者剥离它  \[MQTT-1.5.3-3\]。 -#### 非规范示例 +#### 非规范示例 Non normative example > 例如,字符串 A𪛔 是一个拉丁字母A后面跟着一个代码点U+2A6D4(它表示一个中日韩统一表意文字扩展B中的字符),这个字符串编码如下: -##### 图例 1.2 UTF-8编码字符串非规范示例 +##### 图例 1.2 UTF-8编码字符串非规范示例 UTF-8 encoded string non normative example | **Bit** | **7** | **6** | **5** | **4** | **3** | **2** | **1** | **0** | |---------|-----------------------|-------|-------|-------|-------|-------|-------|-------| @@ -130,6 +123,13 @@ UTF-8编码序列0XEF 0xBB 0xBF总是被解释为U+FEFF(零宽度非换行空 | byte 7 | (0x94) | | | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | -### 1.6 编辑约定 +### 1.6 编辑约定 Editing conventions 本规范用黄色高亮的文本标识一致性声明,每个一致性声明都分配了一个这种格式的引用:\[MQTT-x.x.x-y\]。 + + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + + diff --git a/mqtt/02-ControlPacketFormat.md b/mqtt/02-ControlPacketFormat.md index 7d2c5b7..d93c1da 100644 --- a/mqtt/02-ControlPacketFormat.md +++ b/mqtt/02-ControlPacketFormat.md @@ -1,4 +1,4 @@ -# 第二章 MQTT控制报文格式 +# 第二章 MQTT控制报文格式 MQTT Control Packet format ## 目录 @@ -11,7 +11,7 @@ - [第七章 – 一致性目标](07-Conformance.md) - [附录B - 强制性规范声明](08-AppendixB.md) -## 2.1 MQTT控制报文的结构 +## 2.1 MQTT控制报文的结构 Structure of an MQTT Control Packet MQTT协议通过交换预定义的MQTT控制报文来通信。这一节描述这些报文的格式。 @@ -24,7 +24,7 @@ MQTT控制报文由三部分组成,按照 [图例 2.1 –MQTT控制报文的 | Variable header | 可变报头,部分控制报文包含 | | Payload | 有效载荷,部分控制报文包含 | -## 2.2 固定报头 +## 2.2 固定报头 Fixed header 每个MQTT控制报文都包含一个固定报头。[图例 2.2 -固定报头的格式](#_Figure_2.2_-) 描述了固定报头的格式。 @@ -35,13 +35,13 @@ MQTT控制报文由三部分组成,按照 [图例 2.1 –MQTT控制报文的 | byte 1 | MQTT控制报文的类型 | 用于指定控制报文类型的标志位 | | byte 2… | 剩余长度 | -### 2.2.1 MQTT控制报文的类型 +### 2.2.1 MQTT控制报文的类型 MQTT Control Packet type **位置:**第1个字节,二进制位7-4。 表示为4位无符号值,这些值的定义见 [表格 2.1 -控制报文的类型](#_Table_2.1_-) -##### 表格 2.1 -控制报文的类型 +##### 表格 2.1 -控制报文的类型 | **名字** | **值** | **报文流动方向** | **描述** | |-------------|--------|------------------|-------------------------------------| @@ -66,7 +66,7 @@ MQTT控制报文由三部分组成,按照 [图例 2.1 –MQTT控制报文的 固定报头第1个字节的剩余的4位 \[3-0\]包含每个MQTT控制报文类型特定的标志,见 [表格 2.2 -标志位](#表格-2.2--标志位)。表格 2.2中任何标记为“保留”的标志位,都是保留给以后使用的,**必须**设置为表格中列出的值 \[MQTT-2.2.2-1\]。如果收到非法的标志,接收者**必须**关闭网络连接。有关错误处理的详细信息见 4.8节 \[MQTT-2.2.2-2\]。 -##### 表格 2.2 -标志位 +##### 表格 2.2 - 标志位 Flag Bits | **控制报文** | **固定报头标志** | **Bit 3** | **Bit 2** | **Bit 1** | **Bit 0** | |--------------|--------------------|-----------------|-----------------|-----------------|--------------------| @@ -85,15 +85,13 @@ MQTT控制报文由三部分组成,按照 [图例 2.1 –MQTT控制报文的 | PINGRESP | Reserved | 0 | 0 | 0 | 0 | | DISCONNECT | Reserved | 0 | 0 | 0 | 0 | -DUP1 =控制报文的重复分发标志 - -QoS2 = PUBLISH报文的服务质量等级 - -RETAIN3 = PUBLISH报文的保留标志 +- DUP1 =控制报文的重复分发标志 +- QoS2 = PUBLISH报文的服务质量等级 +- RETAIN3 = PUBLISH报文的保留标志 PUBLISH控制报文中的DUP, QoS和RETAIN标志的描述见 3.3.1节。 -### 2.2.3 剩余长度 +### 2.2.3 剩余长度 Remaining Length **位置:**从第2个字节开始。 @@ -111,7 +109,7 @@ PUBLISH控制报文中的DUP, QoS和RETAIN标志的描述见 3.3.1节。 > > [表格 2.4剩余长度字段的大小](#_Table_2.4_Size)展示了剩余长度字段所表示的值随字节增长。 -##### 表格 2.4剩余长度字段的大小 +##### 表格 2.4剩余长度字段的大小 Size of Remaining Length field | **字节数** | **最小值** | **最大值** | |------------|------------------|----------------------| @@ -166,20 +164,20 @@ while ((encodedByte AND 128) != 0) >这个算法终止时,value包含的就是剩余长度的值。 -## 2.3 可变报头 +## 2.3 可变报头 Variable header 某些MQTT控制报文包含一个可变报头部分。它在固定报头和负载之间。可变报头的内容根据报文类型的不同而不同。可变报头的报文标识符(Packet Identifier)字段存在于在多个类型的报文里。 -### 2.3.1 报文标识符 +### 2.3.1 报文标识符 Packet Identifier -##### 图例 2.3 -报文标识符类型 +##### 图例 2.3 -报文标识符字节 Packet Identifier bytes | **Bit** | **7** - **0** | |---------|----------------| | byte 1 | 报文标识符 MSB | | byte 2 | 报文标识符 LSB | -很多控制报文的可变报头部分包含一个两字节的报文标识符字段。这些报文是PUBLISH(QoS>0时), PUBACK,PUBREC,PUBREL,PUBCOMP,SUBSCRIBE, SUBACK,UNSUBSCIBE,UNSUBACK。 +很多控制报文的可变报头部分包含一个两字节的报文标识符字段。这些报文是PUBLISH(QoS = 0时), PUBACK,PUBREC,PUBREL,PUBCOMP,SUBSCRIBE, SUBACK,UNSUBSCIBE,UNSUBACK。 SUBSCRIBE,UNSUBSCRIBE和PUBLISH(QoS大于0)控制报文**必须**包含一个非零的16位报文标识符(Packet Identifier)\[MQTT-2.3.1-1\]。客户端每次发送一个新的这些类型的报文时都**必须**分配一个当前未使用的报文标识符 \[MQTT-2.3.1-2\]。如果一个客户端要重发这个特殊的控制报文,在随后重发那个报文时,它**必须**使用相同的标识符。当客户端处理完这个报文对应的确认后,这个报文标识符就释放可重用。QoS 1的PUBLISH对应的是PUBACK,QoS 2的PUBLISH对应的是PUBCOMP,与SUBSCRIBE或UNSUBSCRIBE对应的分别是SUBACK或UNSUBACK \[MQTT-2.3.1-3\]。发送一个QoS 0的PUBLISH报文时,相同的条件也适用于服务端 \[MQTT-2.3.1-4\]。 @@ -189,13 +187,13 @@ PUBACK, PUBREC, PUBREL报文**必须**包含与最初发送的PUBLISH报文相 需要报文标识符的控制报文在 [表格 2.5 -包含报文标识符的控制报文](#_Table_2.5_-) 中列出。 -##### 表格 2.5 -包含报文标识符的控制报文 +##### 表格 2.5 -包含报文标识符的控制报文 Control Packets that contain a Packet Identifier | **控制报文** | **报文标识符字段** | |--------------|------------------------| | CONNECT | 不需要 | | CONNACK | 不需要 | -| PUBLISH | 需要(如果QoS > 0) | +| PUBLISH | 需要(如果QoS = 0) | | PUBACK | 需要 | | PUBREC | 需要 | | PUBREL | 需要 | @@ -225,7 +223,7 @@ PUBACK | Packet Identifier=0x1234--- 某些MQTT控制报文在报文的最后部分包含一个有效载荷,这将在第三章论述。对于PUBLISH来说有效载荷就是应用消息。[表格 2.6 – 包含有效载荷的控制报文](#_Table_2.6_-) 列出了需要有效载荷的控制报文。 -##### 表格 2.6 – 包含有效载荷的控制报文 +##### 表格 2.6 – 包含有效载荷的控制报文 Control Packets that contain a Payload | **控制报文** | **有效载荷** | |--------------|--------------| @@ -243,3 +241,10 @@ PUBACK | Packet Identifier=0x1234--- | PINGREQ | 不需要 | | PINGRESP | 不需要 | | DISCONNECT | 不需要 | + + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + + diff --git a/mqtt/03-ControlPackets.md b/mqtt/03-ControlPackets.md index 3d71334..1f954c1 100644 --- a/mqtt/03-ControlPackets.md +++ b/mqtt/03-ControlPackets.md @@ -1,4 +1,4 @@ -# 第三章 MQTT控制报文 +# 第三章 MQTT控制报文 MQTT Control Packets ## 目录 @@ -13,17 +13,24 @@ ## 本章目录 -- [3.1 CONNECT – 连接服务端 20](0301-CONNECT.md) -- [3.2 CONNACK – 确认连接请求 28](0302-CONNACK.md) -- [3.3 PUBLISH – 发布消息 30](0303-PUBLISH.md) -- [3.4 PUBACK –发布确认 33](0304-PUBACK.md) -- [3.5 PUBREC – 发布收到(QoS 2,第一步) 34](0305-PUBREC.md) -- [3.6 PUBREL – 发布释放(QoS 2,第二步) 35](0306-PUBREL.md) -- [3.7 PUBCOMP – 发布完成(QoS 2,第三步) 36](0307-PUBCOMP.md) -- [3.8 SUBSCRIBE - 订阅主题 37](0308-SUBSCRIBE.md) -- [3.9 SUBACK – 订阅确认 40](0309-SUBACK.md) -- [3.10 UNSUBSCRIBE –取消订阅 41](0310-UNSUBSCRIBE.md) -- [3.11 UNSUBACK – 取消订阅确认 43](0311-UNSUBACK.md) -- [3.12 PINGREQ – 心跳请求 44](0312-PINGREQ.md) -- [3.13 PINGRESP – 心跳响应 45](0313-PINGRESP.md) -- [3.14 DISCONNECT –断开连接 45](0314-DISCONNECT.md) +- [3.1 CONNECT – 连接服务端](0301-CONNECT.md) +- [3.2 CONNACK – 确认连接请求](0302-CONNACK.md) +- [3.3 PUBLISH – 发布消息](0303-PUBLISH.md) +- [3.4 PUBACK –发布确认](0304-PUBACK.md) +- [3.5 PUBREC – 发布收到(QoS 2,第一步)](0305-PUBREC.md) +- [3.6 PUBREL – 发布释放(QoS 2,第二步)](0306-PUBREL.md) +- [3.7 PUBCOMP – 发布完成(QoS 2,第三步)](0307-PUBCOMP.md) +- [3.8 SUBSCRIBE - 订阅主题](0308-SUBSCRIBE.md) +- [3.9 SUBACK – 订阅确认](0309-SUBACK.md) +- [3.10 UNSUBSCRIBE –取消订阅](0310-UNSUBSCRIBE.md) +- [3.11 UNSUBACK – 取消订阅确认](0311-UNSUBACK.md) +- [3.12 PINGREQ – 心跳请求](0312-PINGREQ.md) +- [3.13 PINGRESP – 心跳响应](0313-PINGRESP.md) +- [3.14 DISCONNECT –断开连接](0314-DISCONNECT.md) + + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + + diff --git a/mqtt/0301-CONNECT.md b/mqtt/0301-CONNECT.md index cf08f5b..3fd6d4a 100644 --- a/mqtt/0301-CONNECT.md +++ b/mqtt/0301-CONNECT.md @@ -1,20 +1,3 @@ -# 第三章 MQTT控制报文 - -- [3.1 CONNECT – 连接服务端 20](0301-CONNECT.md) -- [3.2 CONNACK – 确认连接请求 28](0302-CONNACK.md) -- [3.3 PUBLISH – 发布消息 30](0303-PUBLISH.md) -- [3.4 PUBACK –发布确认 33](0304-PUBACK.md) -- [3.5 PUBREC – 发布收到(QoS 2,第一步) 34](0305-PUBREC.md) -- [3.6 PUBREL – 发布释放(QoS 2,第二步) 35](0306-PUBREL.md) -- [3.7 PUBCOMP – 发布完成(QoS 2,第三步) 36](0307-PUBCOMP.md) -- [3.8 SUBSCRIBE - 订阅主题 37](0308-SUBSCRIBE.md) -- [3.9 SUBACK – 订阅确认 40](0309-SUBACK.md) -- [3.10 UNSUBSCRIBE –取消订阅 41](0310-UNSUBSCRIBE.md) -- [3.11 UNSUBACK – 取消订阅确认 43](0311-UNSUBACK.md) -- [3.12 PINGREQ – 心跳请求 44](0312-PINGREQ.md) -- [3.13 PINGRESP – 心跳响应 45](0313-PINGRESP.md) -- [3.14 DISCONNECT –断开连接 45](0314-DISCONNECT.md) - ## 3.1 CONNECT – 连接服务端 客户端到服务端的网络连接建立后,客户端发送给服务端的第一个报文**必须**是CONNECT报文 \[MQTT-3.1.0-1\]。 @@ -327,3 +310,26 @@ CONNECT报文的有效载荷(payload)包含一个或多个以长度为前缀 > **非规范评注** > > 客户端通常会等待一个CONNACK报文。然而客户端有权在收到CONNACK之前发送控制报文,由于不需要维持连接状态,这可以简化客户端的实现。 + +### 第三章目录 MQTT控制报文 + +- [3.0 Contents – MQTT控制报文](03-ControlPackets.md) +- [3.1 CONNECT – 连接服务端](0301-CONNECT.md) +- [3.2 CONNACK – 确认连接请求](0302-CONNACK.md) +- [3.3 PUBLISH – 发布消息](0303-PUBLISH.md) +- [3.4 PUBACK –发布确认](0304-PUBACK.md) +- [3.5 PUBREC – 发布收到(QoS 2,第一步)](0305-PUBREC.md) +- [3.6 PUBREL – 发布释放(QoS 2,第二步)](0306-PUBREL.md) +- [3.7 PUBCOMP – 发布完成(QoS 2,第三步)](0307-PUBCOMP.md) +- [3.8 SUBSCRIBE - 订阅主题](0308-SUBSCRIBE.md) +- [3.9 SUBACK – 订阅确认](0309-SUBACK.md) +- [3.10 UNSUBSCRIBE –取消订阅](0310-UNSUBSCRIBE.md) +- [3.11 UNSUBACK – 取消订阅确认](0311-UNSUBACK.md) +- [3.12 PINGREQ – 心跳请求](0312-PINGREQ.md) +- [3.13 PINGRESP – 心跳响应](0313-PINGRESP.md) +- [3.14 DISCONNECT –断开连接](0314-DISCONNECT.md) + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + diff --git a/mqtt/0302-CONNACK.md b/mqtt/0302-CONNACK.md index d4ac6a4..109d8bd 100644 --- a/mqtt/0302-CONNACK.md +++ b/mqtt/0302-CONNACK.md @@ -1,20 +1,3 @@ -# 第三章 MQTT控制报文 - -- [3.1 CONNECT – 连接服务端 20](0301-CONNECT.md) -- [3.2 CONNACK – 确认连接请求 28](0302-CONNACK.md) -- [3.3 PUBLISH – 发布消息 30](0303-PUBLISH.md) -- [3.4 PUBACK –发布确认 33](0304-PUBACK.md) -- [3.5 PUBREC – 发布收到(QoS 2,第一步) 34](0305-PUBREC.md) -- [3.6 PUBREL – 发布释放(QoS 2,第二步) 35](0306-PUBREL.md) -- [3.7 PUBCOMP – 发布完成(QoS 2,第三步) 36](0307-PUBCOMP.md) -- [3.8 SUBSCRIBE - 订阅主题 37](0308-SUBSCRIBE.md) -- [3.9 SUBACK – 订阅确认 40](0309-SUBACK.md) -- [3.10 UNSUBSCRIBE –取消订阅 41](0310-UNSUBSCRIBE.md) -- [3.11 UNSUBACK – 取消订阅确认 43](0311-UNSUBACK.md) -- [3.12 PINGREQ – 心跳请求 44](0312-PINGREQ.md) -- [3.13 PINGRESP – 心跳响应 45](0313-PINGRESP.md) -- [3.14 DISCONNECT –断开连接 45](0314-DISCONNECT.md) - ## 3.2 CONNACK – 确认连接请求 @@ -94,3 +77,28 @@ ### 3.2.3 有效载荷 CONNACK报文没有有效载荷。 + + +### 第三章目录 MQTT控制报文 + +- [3.0 Contents – MQTT控制报文](03-ControlPackets.md) +- [3.1 CONNECT – 连接服务端](0301-CONNECT.md) +- [3.2 CONNACK – 确认连接请求](0302-CONNACK.md) +- [3.3 PUBLISH – 发布消息](0303-PUBLISH.md) +- [3.4 PUBACK –发布确认](0304-PUBACK.md) +- [3.5 PUBREC – 发布收到(QoS 2,第一步)](0305-PUBREC.md) +- [3.6 PUBREL – 发布释放(QoS 2,第二步)](0306-PUBREL.md) +- [3.7 PUBCOMP – 发布完成(QoS 2,第三步)](0307-PUBCOMP.md) +- [3.8 SUBSCRIBE - 订阅主题](0308-SUBSCRIBE.md) +- [3.9 SUBACK – 订阅确认](0309-SUBACK.md) +- [3.10 UNSUBSCRIBE –取消订阅](0310-UNSUBSCRIBE.md) +- [3.11 UNSUBACK – 取消订阅确认](0311-UNSUBACK.md) +- [3.12 PINGREQ – 心跳请求](0312-PINGREQ.md) +- [3.13 PINGRESP – 心跳响应](0313-PINGRESP.md) +- [3.14 DISCONNECT –断开连接](0314-DISCONNECT.md) + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + + diff --git a/mqtt/0303-PUBLISH.md b/mqtt/0303-PUBLISH.md index c4c7cae..0af865f 100644 --- a/mqtt/0303-PUBLISH.md +++ b/mqtt/0303-PUBLISH.md @@ -1,20 +1,3 @@ -# 第三章 MQTT控制报文 - -- [3.1 CONNECT – 连接服务端 20](0301-CONNECT.md) -- [3.2 CONNACK – 确认连接请求 28](0302-CONNACK.md) -- [3.3 PUBLISH – 发布消息 30](0303-PUBLISH.md) -- [3.4 PUBACK –发布确认 33](0304-PUBACK.md) -- [3.5 PUBREC – 发布收到(QoS 2,第一步) 34](0305-PUBREC.md) -- [3.6 PUBREL – 发布释放(QoS 2,第二步) 35](0306-PUBREL.md) -- [3.7 PUBCOMP – 发布完成(QoS 2,第三步) 36](0307-PUBCOMP.md) -- [3.8 SUBSCRIBE - 订阅主题 37](0308-SUBSCRIBE.md) -- [3.9 SUBACK – 订阅确认 40](0309-SUBACK.md) -- [3.10 UNSUBSCRIBE –取消订阅 41](0310-UNSUBSCRIBE.md) -- [3.11 UNSUBACK – 取消订阅确认 43](0311-UNSUBACK.md) -- [3.12 PINGREQ – 心跳请求 44](0312-PINGREQ.md) -- [3.13 PINGRESP – 心跳响应 45](0313-PINGRESP.md) -- [3.14 DISCONNECT –断开连接 45](0314-DISCONNECT.md) - ## 3.3 PUBLISH – 发布消息 PUBLISH控制报文是指从客户端向服务端或者服务端向客户端传输一个应用消息。 @@ -158,3 +141,28 @@ PUBLISH报文的接收者**必须**按照根据PUBLISH报文中的QoS等级发 收到一个PUBLISH报文时,接收者的动作取决于4.3节描述的QoS等级。 如果服务端实现不授权某个客户端发布PUBLISH报文,它没有办法通知那个客户端。它**必须**按照正常的QoS规则发送一个正面的确认,或者关闭网络连接 \[MQTT-3.3.5-2\]。 + + +### 第三章目录 MQTT控制报文 + +- [3.0 Contents – MQTT控制报文](03-ControlPackets.md) +- [3.1 CONNECT – 连接服务端](0301-CONNECT.md) +- [3.2 CONNACK – 确认连接请求](0302-CONNACK.md) +- [3.3 PUBLISH – 发布消息](0303-PUBLISH.md) +- [3.4 PUBACK –发布确认](0304-PUBACK.md) +- [3.5 PUBREC – 发布收到(QoS 2,第一步)](0305-PUBREC.md) +- [3.6 PUBREL – 发布释放(QoS 2,第二步)](0306-PUBREL.md) +- [3.7 PUBCOMP – 发布完成(QoS 2,第三步)](0307-PUBCOMP.md) +- [3.8 SUBSCRIBE - 订阅主题](0308-SUBSCRIBE.md) +- [3.9 SUBACK – 订阅确认](0309-SUBACK.md) +- [3.10 UNSUBSCRIBE –取消订阅](0310-UNSUBSCRIBE.md) +- [3.11 UNSUBACK – 取消订阅确认](0311-UNSUBACK.md) +- [3.12 PINGREQ – 心跳请求](0312-PINGREQ.md) +- [3.13 PINGRESP – 心跳响应](0313-PINGRESP.md) +- [3.14 DISCONNECT –断开连接](0314-DISCONNECT.md) + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + + diff --git a/mqtt/0304-PUBACK.md b/mqtt/0304-PUBACK.md index cb71956..47f9d57 100644 --- a/mqtt/0304-PUBACK.md +++ b/mqtt/0304-PUBACK.md @@ -1,20 +1,3 @@ -# 第三章 MQTT控制报文 - -- [3.1 CONNECT – 连接服务端 20](0301-CONNECT.md) -- [3.2 CONNACK – 确认连接请求 28](0302-CONNACK.md) -- [3.3 PUBLISH – 发布消息 30](0303-PUBLISH.md) -- [3.4 PUBACK –发布确认 33](0304-PUBACK.md) -- [3.5 PUBREC – 发布收到(QoS 2,第一步) 34](0305-PUBREC.md) -- [3.6 PUBREL – 发布释放(QoS 2,第二步) 35](0306-PUBREL.md) -- [3.7 PUBCOMP – 发布完成(QoS 2,第三步) 36](0307-PUBCOMP.md) -- [3.8 SUBSCRIBE - 订阅主题 37](0308-SUBSCRIBE.md) -- [3.9 SUBACK – 订阅确认 40](0309-SUBACK.md) -- [3.10 UNSUBSCRIBE –取消订阅 41](0310-UNSUBSCRIBE.md) -- [3.11 UNSUBACK – 取消订阅确认 43](0311-UNSUBACK.md) -- [3.12 PINGREQ – 心跳请求 44](0312-PINGREQ.md) -- [3.13 PINGRESP – 心跳响应 45](0313-PINGRESP.md) -- [3.14 DISCONNECT –断开连接 45](0314-DISCONNECT.md) - ## 3.4 PUBACK –发布确认 PUBACK报文是对QoS 1等级的PUBLISH报文的响应。 @@ -52,3 +35,28 @@ PUBACK报文没有有效载荷。 ### 3.4.4 动作 完整的描述见 4.3.2节。 + + +### 第三章目录 MQTT控制报文 + +- [3.0 Contents – MQTT控制报文](03-ControlPackets.md) +- [3.1 CONNECT – 连接服务端](0301-CONNECT.md) +- [3.2 CONNACK – 确认连接请求](0302-CONNACK.md) +- [3.3 PUBLISH – 发布消息](0303-PUBLISH.md) +- [3.4 PUBACK –发布确认](0304-PUBACK.md) +- [3.5 PUBREC – 发布收到(QoS 2,第一步)](0305-PUBREC.md) +- [3.6 PUBREL – 发布释放(QoS 2,第二步)](0306-PUBREL.md) +- [3.7 PUBCOMP – 发布完成(QoS 2,第三步)](0307-PUBCOMP.md) +- [3.8 SUBSCRIBE - 订阅主题](0308-SUBSCRIBE.md) +- [3.9 SUBACK – 订阅确认](0309-SUBACK.md) +- [3.10 UNSUBSCRIBE –取消订阅](0310-UNSUBSCRIBE.md) +- [3.11 UNSUBACK – 取消订阅确认](0311-UNSUBACK.md) +- [3.12 PINGREQ – 心跳请求](0312-PINGREQ.md) +- [3.13 PINGRESP – 心跳响应](0313-PINGRESP.md) +- [3.14 DISCONNECT –断开连接](0314-DISCONNECT.md) + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + + diff --git a/mqtt/0305-PUBREC.md b/mqtt/0305-PUBREC.md index 0c4598e..2913ff3 100644 --- a/mqtt/0305-PUBREC.md +++ b/mqtt/0305-PUBREC.md @@ -1,20 +1,3 @@ -# 第三章 MQTT控制报文 - -- [3.1 CONNECT – 连接服务端 20](0301-CONNECT.md) -- [3.2 CONNACK – 确认连接请求 28](0302-CONNACK.md) -- [3.3 PUBLISH – 发布消息 30](0303-PUBLISH.md) -- [3.4 PUBACK –发布确认 33](0304-PUBACK.md) -- [3.5 PUBREC – 发布收到(QoS 2,第一步) 34](0305-PUBREC.md) -- [3.6 PUBREL – 发布释放(QoS 2,第二步) 35](0306-PUBREL.md) -- [3.7 PUBCOMP – 发布完成(QoS 2,第三步) 36](0307-PUBCOMP.md) -- [3.8 SUBSCRIBE - 订阅主题 37](0308-SUBSCRIBE.md) -- [3.9 SUBACK – 订阅确认 40](0309-SUBACK.md) -- [3.10 UNSUBSCRIBE –取消订阅 41](0310-UNSUBSCRIBE.md) -- [3.11 UNSUBACK – 取消订阅确认 43](0311-UNSUBACK.md) -- [3.12 PINGREQ – 心跳请求 44](0312-PINGREQ.md) -- [3.13 PINGRESP – 心跳响应 45](0313-PINGRESP.md) -- [3.14 DISCONNECT –断开连接 45](0314-DISCONNECT.md) - ## 3.5 PUBREC – 发布收到(QoS 2,第一步) PUBREC报文是对QoS等级2的PUBLISH报文的响应。它是QoS 2等级协议交换的第二个报文。 @@ -52,3 +35,28 @@ PUBREC报文没有有效载荷。 ### 3.5.4 动作 完整的描述见 4.3.3节。 + + +### 第三章目录 MQTT控制报文 + +- [3.0 Contents – MQTT控制报文](03-ControlPackets.md) +- [3.1 CONNECT – 连接服务端](0301-CONNECT.md) +- [3.2 CONNACK – 确认连接请求](0302-CONNACK.md) +- [3.3 PUBLISH – 发布消息](0303-PUBLISH.md) +- [3.4 PUBACK –发布确认](0304-PUBACK.md) +- [3.5 PUBREC – 发布收到(QoS 2,第一步)](0305-PUBREC.md) +- [3.6 PUBREL – 发布释放(QoS 2,第二步)](0306-PUBREL.md) +- [3.7 PUBCOMP – 发布完成(QoS 2,第三步)](0307-PUBCOMP.md) +- [3.8 SUBSCRIBE - 订阅主题](0308-SUBSCRIBE.md) +- [3.9 SUBACK – 订阅确认](0309-SUBACK.md) +- [3.10 UNSUBSCRIBE –取消订阅](0310-UNSUBSCRIBE.md) +- [3.11 UNSUBACK – 取消订阅确认](0311-UNSUBACK.md) +- [3.12 PINGREQ – 心跳请求](0312-PINGREQ.md) +- [3.13 PINGRESP – 心跳响应](0313-PINGRESP.md) +- [3.14 DISCONNECT –断开连接](0314-DISCONNECT.md) + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + + diff --git a/mqtt/0306-PUBREL.md b/mqtt/0306-PUBREL.md index eea054a..06910d6 100644 --- a/mqtt/0306-PUBREL.md +++ b/mqtt/0306-PUBREL.md @@ -1,20 +1,3 @@ -# 第三章 MQTT控制报文 - -- [3.1 CONNECT – 连接服务端 20](0301-CONNECT.md) -- [3.2 CONNACK – 确认连接请求 28](0302-CONNACK.md) -- [3.3 PUBLISH – 发布消息 30](0303-PUBLISH.md) -- [3.4 PUBACK –发布确认 33](0304-PUBACK.md) -- [3.5 PUBREC – 发布收到(QoS 2,第一步) 34](0305-PUBREC.md) -- [3.6 PUBREL – 发布释放(QoS 2,第二步) 35](0306-PUBREL.md) -- [3.7 PUBCOMP – 发布完成(QoS 2,第三步) 36](0307-PUBCOMP.md) -- [3.8 SUBSCRIBE - 订阅主题 37](0308-SUBSCRIBE.md) -- [3.9 SUBACK – 订阅确认 40](0309-SUBACK.md) -- [3.10 UNSUBSCRIBE –取消订阅 41](0310-UNSUBSCRIBE.md) -- [3.11 UNSUBACK – 取消订阅确认 43](0311-UNSUBACK.md) -- [3.12 PINGREQ – 心跳请求 44](0312-PINGREQ.md) -- [3.13 PINGRESP – 心跳响应 45](0313-PINGRESP.md) -- [3.14 DISCONNECT –断开连接 45](0314-DISCONNECT.md) - ## 3.6 PUBREL – 发布释放(QoS 2,第二步) PUBREL报文是对PUBREC报文的响应。它是QoS 2等级协议交换的第三个报文。 @@ -54,3 +37,28 @@ PUBREL报文没有有效载荷。 ### 3.6.4 动作 完整的描述见 4.3.3节。 + + +### 第三章目录 MQTT控制报文 + +- [3.0 Contents – MQTT控制报文](03-ControlPackets.md) +- [3.1 CONNECT – 连接服务端](0301-CONNECT.md) +- [3.2 CONNACK – 确认连接请求](0302-CONNACK.md) +- [3.3 PUBLISH – 发布消息](0303-PUBLISH.md) +- [3.4 PUBACK –发布确认](0304-PUBACK.md) +- [3.5 PUBREC – 发布收到(QoS 2,第一步)](0305-PUBREC.md) +- [3.6 PUBREL – 发布释放(QoS 2,第二步)](0306-PUBREL.md) +- [3.7 PUBCOMP – 发布完成(QoS 2,第三步)](0307-PUBCOMP.md) +- [3.8 SUBSCRIBE - 订阅主题](0308-SUBSCRIBE.md) +- [3.9 SUBACK – 订阅确认](0309-SUBACK.md) +- [3.10 UNSUBSCRIBE –取消订阅](0310-UNSUBSCRIBE.md) +- [3.11 UNSUBACK – 取消订阅确认](0311-UNSUBACK.md) +- [3.12 PINGREQ – 心跳请求](0312-PINGREQ.md) +- [3.13 PINGRESP – 心跳响应](0313-PINGRESP.md) +- [3.14 DISCONNECT –断开连接](0314-DISCONNECT.md) + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + + diff --git a/mqtt/0307-PUBCOMP.md b/mqtt/0307-PUBCOMP.md index 6afc7b2..f58b410 100644 --- a/mqtt/0307-PUBCOMP.md +++ b/mqtt/0307-PUBCOMP.md @@ -1,20 +1,3 @@ -# 第三章 MQTT控制报文 - -- [3.1 CONNECT – 连接服务端 20](0301-CONNECT.md) -- [3.2 CONNACK – 确认连接请求 28](0302-CONNACK.md) -- [3.3 PUBLISH – 发布消息 30](0303-PUBLISH.md) -- [3.4 PUBACK –发布确认 33](0304-PUBACK.md) -- [3.5 PUBREC – 发布收到(QoS 2,第一步) 34](0305-PUBREC.md) -- [3.6 PUBREL – 发布释放(QoS 2,第二步) 35](0306-PUBREL.md) -- [3.7 PUBCOMP – 发布完成(QoS 2,第三步) 36](0307-PUBCOMP.md) -- [3.8 SUBSCRIBE - 订阅主题 37](0308-SUBSCRIBE.md) -- [3.9 SUBACK – 订阅确认 40](0309-SUBACK.md) -- [3.10 UNSUBSCRIBE –取消订阅 41](0310-UNSUBSCRIBE.md) -- [3.11 UNSUBACK – 取消订阅确认 43](0311-UNSUBACK.md) -- [3.12 PINGREQ – 心跳请求 44](0312-PINGREQ.md) -- [3.13 PINGRESP – 心跳响应 45](0313-PINGRESP.md) -- [3.14 DISCONNECT –断开连接 45](0314-DISCONNECT.md) - ## 3.7 PUBCOMP – 发布完成(QoS 2,第三步) PUBCOMP报文是对PUBREL报文的响应。它是QoS 2等级协议交换的第四个也是最后一个报文。 @@ -52,3 +35,28 @@ PUBCOMP报文没有有效载荷。 ### 3.7.4 动作 完整的描述见4.3.3节。 + + +### 第三章目录 MQTT控制报文 + +- [3.0 Contents – MQTT控制报文](03-ControlPackets.md) +- [3.1 CONNECT – 连接服务端](0301-CONNECT.md) +- [3.2 CONNACK – 确认连接请求](0302-CONNACK.md) +- [3.3 PUBLISH – 发布消息](0303-PUBLISH.md) +- [3.4 PUBACK –发布确认](0304-PUBACK.md) +- [3.5 PUBREC – 发布收到(QoS 2,第一步)](0305-PUBREC.md) +- [3.6 PUBREL – 发布释放(QoS 2,第二步)](0306-PUBREL.md) +- [3.7 PUBCOMP – 发布完成(QoS 2,第三步)](0307-PUBCOMP.md) +- [3.8 SUBSCRIBE - 订阅主题](0308-SUBSCRIBE.md) +- [3.9 SUBACK – 订阅确认](0309-SUBACK.md) +- [3.10 UNSUBSCRIBE –取消订阅](0310-UNSUBSCRIBE.md) +- [3.11 UNSUBACK – 取消订阅确认](0311-UNSUBACK.md) +- [3.12 PINGREQ – 心跳请求](0312-PINGREQ.md) +- [3.13 PINGRESP – 心跳响应](0313-PINGRESP.md) +- [3.14 DISCONNECT –断开连接](0314-DISCONNECT.md) + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + + diff --git a/mqtt/0308-SUBSCRIBE.md b/mqtt/0308-SUBSCRIBE.md index 3bef986..3810fca 100644 --- a/mqtt/0308-SUBSCRIBE.md +++ b/mqtt/0308-SUBSCRIBE.md @@ -1,20 +1,3 @@ -# 第三章 MQTT控制报文 - -- [3.1 CONNECT – 连接服务端 20](0301-CONNECT.md) -- [3.2 CONNACK – 确认连接请求 28](0302-CONNACK.md) -- [3.3 PUBLISH – 发布消息 30](0303-PUBLISH.md) -- [3.4 PUBACK –发布确认 33](0304-PUBACK.md) -- [3.5 PUBREC – 发布收到(QoS 2,第一步) 34](0305-PUBREC.md) -- [3.6 PUBREL – 发布释放(QoS 2,第二步) 35](0306-PUBREL.md) -- [3.7 PUBCOMP – 发布完成(QoS 2,第三步) 36](0307-PUBCOMP.md) -- [3.8 SUBSCRIBE - 订阅主题 37](0308-SUBSCRIBE.md) -- [3.9 SUBACK – 订阅确认 40](0309-SUBACK.md) -- [3.10 UNSUBSCRIBE –取消订阅 41](0310-UNSUBSCRIBE.md) -- [3.11 UNSUBACK – 取消订阅确认 43](0311-UNSUBACK.md) -- [3.12 PINGREQ – 心跳请求 44](0312-PINGREQ.md) -- [3.13 PINGRESP – 心跳响应 45](0313-PINGRESP.md) -- [3.14 DISCONNECT –断开连接 45](0314-DISCONNECT.md) - ## 3.8 SUBSCRIBE - 订阅主题 客户端向服务端发送SUBSCRIBE报文用于创建一个或多个订阅。每个订阅注册客户端关心的一个或多个主题。为了将应用消息转发给与那些订阅匹配的主题,服务端发送PUBLISH报文给客户端。SUBSCRIBE报文也(为每个订阅)指定了最大的QoS等级,服务端根据这个发送应用消息给客户端。 @@ -128,3 +111,28 @@ SUBSCRIBE报文的有效载荷**必须**包含至少一对主题过滤器 和 Qo > **非规范评注** > > 使用QoS等级2订阅一个主题过滤器等于是说:*我想要按照它们发布时的QoS等级接受匹配这个过滤器的消息* 。这意味着,确定消息分发时可能的最大QoS等级是发布者的责任,而订阅者可以要求服务端降低QoS到更适合它的等级。 + + +### 第三章目录 MQTT控制报文 + +- [3.0 Contents – MQTT控制报文](03-ControlPackets.md) +- [3.1 CONNECT – 连接服务端](0301-CONNECT.md) +- [3.2 CONNACK – 确认连接请求](0302-CONNACK.md) +- [3.3 PUBLISH – 发布消息](0303-PUBLISH.md) +- [3.4 PUBACK –发布确认](0304-PUBACK.md) +- [3.5 PUBREC – 发布收到(QoS 2,第一步)](0305-PUBREC.md) +- [3.6 PUBREL – 发布释放(QoS 2,第二步)](0306-PUBREL.md) +- [3.7 PUBCOMP – 发布完成(QoS 2,第三步)](0307-PUBCOMP.md) +- [3.8 SUBSCRIBE - 订阅主题](0308-SUBSCRIBE.md) +- [3.9 SUBACK – 订阅确认](0309-SUBACK.md) +- [3.10 UNSUBSCRIBE –取消订阅](0310-UNSUBSCRIBE.md) +- [3.11 UNSUBACK – 取消订阅确认](0311-UNSUBACK.md) +- [3.12 PINGREQ – 心跳请求](0312-PINGREQ.md) +- [3.13 PINGRESP – 心跳响应](0313-PINGRESP.md) +- [3.14 DISCONNECT –断开连接](0314-DISCONNECT.md) + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + + diff --git a/mqtt/0309-SUBACK.md b/mqtt/0309-SUBACK.md index a419545..931201c 100644 --- a/mqtt/0309-SUBACK.md +++ b/mqtt/0309-SUBACK.md @@ -1,20 +1,3 @@ -# 第三章 MQTT控制报文 - -- [3.1 CONNECT – 连接服务端 20](0301-CONNECT.md) -- [3.2 CONNACK – 确认连接请求 28](0302-CONNACK.md) -- [3.3 PUBLISH – 发布消息 30](0303-PUBLISH.md) -- [3.4 PUBACK –发布确认 33](0304-PUBACK.md) -- [3.5 PUBREC – 发布收到(QoS 2,第一步) 34](0305-PUBREC.md) -- [3.6 PUBREL – 发布释放(QoS 2,第二步) 35](0306-PUBREL.md) -- [3.7 PUBCOMP – 发布完成(QoS 2,第三步) 36](0307-PUBCOMP.md) -- [3.8 SUBSCRIBE - 订阅主题 37](0308-SUBSCRIBE.md) -- [3.9 SUBACK – 订阅确认 40](0309-SUBACK.md) -- [3.10 UNSUBSCRIBE –取消订阅 41](0310-UNSUBSCRIBE.md) -- [3.11 UNSUBACK – 取消订阅确认 43](0311-UNSUBACK.md) -- [3.12 PINGREQ – 心跳请求 44](0312-PINGREQ.md) -- [3.13 PINGRESP – 心跳响应 45](0313-PINGRESP.md) -- [3.14 DISCONNECT –断开连接 45](0314-DISCONNECT.md) - ## 3.9 SUBACK – 订阅确认 服务端发送SUBACK报文给客户端,用于确认它已收到并且正在处理SUBSCRIBE报文。 @@ -86,3 +69,28 @@ SUBACK报文包含一个返回码清单,它们指定了SUBSCRIBE请求的每 | byte 1 | Success - Maximum QoS 0  | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | byte 2 | Success - Maximum QoS 2  | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | | byte 3 | Failure | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + + +### 第三章目录 MQTT控制报文 + +- [3.0 Contents – MQTT控制报文](03-ControlPackets.md) +- [3.1 CONNECT – 连接服务端](0301-CONNECT.md) +- [3.2 CONNACK – 确认连接请求](0302-CONNACK.md) +- [3.3 PUBLISH – 发布消息](0303-PUBLISH.md) +- [3.4 PUBACK –发布确认](0304-PUBACK.md) +- [3.5 PUBREC – 发布收到(QoS 2,第一步)](0305-PUBREC.md) +- [3.6 PUBREL – 发布释放(QoS 2,第二步)](0306-PUBREL.md) +- [3.7 PUBCOMP – 发布完成(QoS 2,第三步)](0307-PUBCOMP.md) +- [3.8 SUBSCRIBE - 订阅主题](0308-SUBSCRIBE.md) +- [3.9 SUBACK – 订阅确认](0309-SUBACK.md) +- [3.10 UNSUBSCRIBE –取消订阅](0310-UNSUBSCRIBE.md) +- [3.11 UNSUBACK – 取消订阅确认](0311-UNSUBACK.md) +- [3.12 PINGREQ – 心跳请求](0312-PINGREQ.md) +- [3.13 PINGRESP – 心跳响应](0313-PINGRESP.md) +- [3.14 DISCONNECT –断开连接](0314-DISCONNECT.md) + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + + diff --git a/mqtt/0310-UNSUBSCRIBE.md b/mqtt/0310-UNSUBSCRIBE.md index 868bae0..fd8f0dc 100644 --- a/mqtt/0310-UNSUBSCRIBE.md +++ b/mqtt/0310-UNSUBSCRIBE.md @@ -1,20 +1,3 @@ -# 第三章 MQTT控制报文 - -- [3.1 CONNECT – 连接服务端 20](0301-CONNECT.md) -- [3.2 CONNACK – 确认连接请求 28](0302-CONNACK.md) -- [3.3 PUBLISH – 发布消息 30](0303-PUBLISH.md) -- [3.4 PUBACK –发布确认 33](0304-PUBACK.md) -- [3.5 PUBREC – 发布收到(QoS 2,第一步) 34](0305-PUBREC.md) -- [3.6 PUBREL – 发布释放(QoS 2,第二步) 35](0306-PUBREL.md) -- [3.7 PUBCOMP – 发布完成(QoS 2,第三步) 36](0307-PUBCOMP.md) -- [3.8 SUBSCRIBE - 订阅主题 37](0308-SUBSCRIBE.md) -- [3.9 SUBACK – 订阅确认 40](0309-SUBACK.md) -- [3.10 UNSUBSCRIBE –取消订阅 41](0310-UNSUBSCRIBE.md) -- [3.11 UNSUBACK – 取消订阅确认 43](0311-UNSUBACK.md) -- [3.12 PINGREQ – 心跳请求 44](0312-PINGREQ.md) -- [3.13 PINGRESP – 心跳响应 45](0313-PINGRESP.md) -- [3.14 DISCONNECT –断开连接 45](0314-DISCONNECT.md) - ## 3.10 UNSUBSCRIBE –取消订阅 客户端发送UNSUBSCRIBE报文给服务端,用于取消订阅主题。 @@ -92,3 +75,28 @@ UNSUBSCRIBE报文提供的主题过滤器(无论是否包含通配符)**必 服务端**必须**发送UNSUBACK报文响应客户端的UNSUBSCRIBE请求。UNSUBACK报文**必须**包含和UNSUBSCRIBE报文相同的报文标识符 \[MQTT-3.10.4-4\]。即使没有删除任何主题订阅,服务端也**必须**发送一个SUBACK响应 \[MQTT-3.10.4-5\]。 如果服务端收到包含多个主题过滤器的UNSUBSCRIBE报文,它**必须**如同收到了一系列的多个UNSUBSCRIBE报文一样处理那个报文,除了将它们的响应合并到一个单独的UNSUBACK报文外。 \[MQTT-3.10.4-6\]。 + + +### 第三章目录 MQTT控制报文 + +- [3.0 Contents – MQTT控制报文](03-ControlPackets.md) +- [3.1 CONNECT – 连接服务端](0301-CONNECT.md) +- [3.2 CONNACK – 确认连接请求](0302-CONNACK.md) +- [3.3 PUBLISH – 发布消息](0303-PUBLISH.md) +- [3.4 PUBACK –发布确认](0304-PUBACK.md) +- [3.5 PUBREC – 发布收到(QoS 2,第一步)](0305-PUBREC.md) +- [3.6 PUBREL – 发布释放(QoS 2,第二步)](0306-PUBREL.md) +- [3.7 PUBCOMP – 发布完成(QoS 2,第三步)](0307-PUBCOMP.md) +- [3.8 SUBSCRIBE - 订阅主题](0308-SUBSCRIBE.md) +- [3.9 SUBACK – 订阅确认](0309-SUBACK.md) +- [3.10 UNSUBSCRIBE –取消订阅](0310-UNSUBSCRIBE.md) +- [3.11 UNSUBACK – 取消订阅确认](0311-UNSUBACK.md) +- [3.12 PINGREQ – 心跳请求](0312-PINGREQ.md) +- [3.13 PINGRESP – 心跳响应](0313-PINGRESP.md) +- [3.14 DISCONNECT –断开连接](0314-DISCONNECT.md) + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + + diff --git a/mqtt/0311-UNSUBACK.md b/mqtt/0311-UNSUBACK.md index 5ba0eb0..ed993d6 100644 --- a/mqtt/0311-UNSUBACK.md +++ b/mqtt/0311-UNSUBACK.md @@ -1,20 +1,3 @@ -# 第三章 MQTT控制报文 - -- [3.1 CONNECT – 连接服务端 20](0301-CONNECT.md) -- [3.2 CONNACK – 确认连接请求 28](0302-CONNACK.md) -- [3.3 PUBLISH – 发布消息 30](0303-PUBLISH.md) -- [3.4 PUBACK –发布确认 33](0304-PUBACK.md) -- [3.5 PUBREC – 发布收到(QoS 2,第一步) 34](0305-PUBREC.md) -- [3.6 PUBREL – 发布释放(QoS 2,第二步) 35](0306-PUBREL.md) -- [3.7 PUBCOMP – 发布完成(QoS 2,第三步) 36](0307-PUBCOMP.md) -- [3.8 SUBSCRIBE - 订阅主题 37](0308-SUBSCRIBE.md) -- [3.9 SUBACK – 订阅确认 40](0309-SUBACK.md) -- [3.10 UNSUBSCRIBE –取消订阅 41](0310-UNSUBSCRIBE.md) -- [3.11 UNSUBACK – 取消订阅确认 43](0311-UNSUBACK.md) -- [3.12 PINGREQ – 心跳请求 44](0312-PINGREQ.md) -- [3.13 PINGRESP – 心跳响应 45](0313-PINGRESP.md) -- [3.14 DISCONNECT –断开连接 45](0314-DISCONNECT.md) - ## 3.11 UNSUBACK – 取消订阅确认 服务端发送UNSUBACK报文给客户端用于确认收到UNSUBSCRIBE报文。 @@ -48,3 +31,28 @@ ### 3.11.3 有效载荷 UNSUBACK报文没有有效载荷。 + + +### 第三章目录 MQTT控制报文 + +- [3.0 Contents – MQTT控制报文](03-ControlPackets.md) +- [3.1 CONNECT – 连接服务端](0301-CONNECT.md) +- [3.2 CONNACK – 确认连接请求](0302-CONNACK.md) +- [3.3 PUBLISH – 发布消息](0303-PUBLISH.md) +- [3.4 PUBACK –发布确认](0304-PUBACK.md) +- [3.5 PUBREC – 发布收到(QoS 2,第一步)](0305-PUBREC.md) +- [3.6 PUBREL – 发布释放(QoS 2,第二步)](0306-PUBREL.md) +- [3.7 PUBCOMP – 发布完成(QoS 2,第三步)](0307-PUBCOMP.md) +- [3.8 SUBSCRIBE - 订阅主题](0308-SUBSCRIBE.md) +- [3.9 SUBACK – 订阅确认](0309-SUBACK.md) +- [3.10 UNSUBSCRIBE –取消订阅](0310-UNSUBSCRIBE.md) +- [3.11 UNSUBACK – 取消订阅确认](0311-UNSUBACK.md) +- [3.12 PINGREQ – 心跳请求](0312-PINGREQ.md) +- [3.13 PINGRESP – 心跳响应](0313-PINGRESP.md) +- [3.14 DISCONNECT –断开连接](0314-DISCONNECT.md) + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + + diff --git a/mqtt/0312-PINGREQ.md b/mqtt/0312-PINGREQ.md index 9ddcf64..d1f9556 100644 --- a/mqtt/0312-PINGREQ.md +++ b/mqtt/0312-PINGREQ.md @@ -1,20 +1,3 @@ -# 第三章 MQTT控制报文 - -- [3.1 CONNECT – 连接服务端 20](0301-CONNECT.md) -- [3.2 CONNACK – 确认连接请求 28](0302-CONNACK.md) -- [3.3 PUBLISH – 发布消息 30](0303-PUBLISH.md) -- [3.4 PUBACK –发布确认 33](0304-PUBACK.md) -- [3.5 PUBREC – 发布收到(QoS 2,第一步) 34](0305-PUBREC.md) -- [3.6 PUBREL – 发布释放(QoS 2,第二步) 35](0306-PUBREL.md) -- [3.7 PUBCOMP – 发布完成(QoS 2,第三步) 36](0307-PUBCOMP.md) -- [3.8 SUBSCRIBE - 订阅主题 37](0308-SUBSCRIBE.md) -- [3.9 SUBACK – 订阅确认 40](0309-SUBACK.md) -- [3.10 UNSUBSCRIBE –取消订阅 41](0310-UNSUBSCRIBE.md) -- [3.11 UNSUBACK – 取消订阅确认 43](0311-UNSUBACK.md) -- [3.12 PINGREQ – 心跳请求 44](0312-PINGREQ.md) -- [3.13 PINGRESP – 心跳响应 45](0313-PINGRESP.md) -- [3.14 DISCONNECT –断开连接 45](0314-DISCONNECT.md) - ## 3.12 PINGREQ – 心跳请求 客户端发送PINGREQ报文给服务端的。用于: @@ -47,3 +30,28 @@ PINGREQ报文没有有效载荷。 ### 3.12.4 响应 服务端**必须**发送 PINGRESP报文响应客户端的PINGREQ报文 \[MQTT-3.12.4-1\]。 + + +### 第三章目录 MQTT控制报文 + +- [3.0 Contents – MQTT控制报文](03-ControlPackets.md) +- [3.1 CONNECT – 连接服务端](0301-CONNECT.md) +- [3.2 CONNACK – 确认连接请求](0302-CONNACK.md) +- [3.3 PUBLISH – 发布消息](0303-PUBLISH.md) +- [3.4 PUBACK –发布确认](0304-PUBACK.md) +- [3.5 PUBREC – 发布收到(QoS 2,第一步)](0305-PUBREC.md) +- [3.6 PUBREL – 发布释放(QoS 2,第二步)](0306-PUBREL.md) +- [3.7 PUBCOMP – 发布完成(QoS 2,第三步)](0307-PUBCOMP.md) +- [3.8 SUBSCRIBE - 订阅主题](0308-SUBSCRIBE.md) +- [3.9 SUBACK – 订阅确认](0309-SUBACK.md) +- [3.10 UNSUBSCRIBE –取消订阅](0310-UNSUBSCRIBE.md) +- [3.11 UNSUBACK – 取消订阅确认](0311-UNSUBACK.md) +- [3.12 PINGREQ – 心跳请求](0312-PINGREQ.md) +- [3.13 PINGRESP – 心跳响应](0313-PINGRESP.md) +- [3.14 DISCONNECT –断开连接](0314-DISCONNECT.md) + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + + diff --git a/mqtt/0313-PINGRESP.md b/mqtt/0313-PINGRESP.md index b2e22c4..4e07c9f 100644 --- a/mqtt/0313-PINGRESP.md +++ b/mqtt/0313-PINGRESP.md @@ -1,20 +1,3 @@ -# 第三章 MQTT控制报文 - -- [3.1 CONNECT – 连接服务端 20](0301-CONNECT.md) -- [3.2 CONNACK – 确认连接请求 28](0302-CONNACK.md) -- [3.3 PUBLISH – 发布消息 30](0303-PUBLISH.md) -- [3.4 PUBACK –发布确认 33](0304-PUBACK.md) -- [3.5 PUBREC – 发布收到(QoS 2,第一步) 34](0305-PUBREC.md) -- [3.6 PUBREL – 发布释放(QoS 2,第二步) 35](0306-PUBREL.md) -- [3.7 PUBCOMP – 发布完成(QoS 2,第三步) 36](0307-PUBCOMP.md) -- [3.8 SUBSCRIBE - 订阅主题 37](0308-SUBSCRIBE.md) -- [3.9 SUBACK – 订阅确认 40](0309-SUBACK.md) -- [3.10 UNSUBSCRIBE –取消订阅 41](0310-UNSUBSCRIBE.md) -- [3.11 UNSUBACK – 取消订阅确认 43](0311-UNSUBACK.md) -- [3.12 PINGREQ – 心跳请求 44](0312-PINGREQ.md) -- [3.13 PINGRESP – 心跳响应 45](0313-PINGRESP.md) -- [3.14 DISCONNECT –断开连接 45](0314-DISCONNECT.md) - ## 3.13 PINGRESP – 心跳响应 服务端发送PINGRESP报文响应客户端的PINGREQ报文。表示服务端还活着。 @@ -39,3 +22,28 @@ PINGRESP报文没有可变报头。 ### 3.13.3 有效载荷 PINGRESP报文没有有效载荷。 + + +### 第三章目录 MQTT控制报文 + +- [3.0 Contents – MQTT控制报文](03-ControlPackets.md) +- [3.1 CONNECT – 连接服务端](0301-CONNECT.md) +- [3.2 CONNACK – 确认连接请求](0302-CONNACK.md) +- [3.3 PUBLISH – 发布消息](0303-PUBLISH.md) +- [3.4 PUBACK –发布确认](0304-PUBACK.md) +- [3.5 PUBREC – 发布收到(QoS 2,第一步)](0305-PUBREC.md) +- [3.6 PUBREL – 发布释放(QoS 2,第二步)](0306-PUBREL.md) +- [3.7 PUBCOMP – 发布完成(QoS 2,第三步)](0307-PUBCOMP.md) +- [3.8 SUBSCRIBE - 订阅主题](0308-SUBSCRIBE.md) +- [3.9 SUBACK – 订阅确认](0309-SUBACK.md) +- [3.10 UNSUBSCRIBE –取消订阅](0310-UNSUBSCRIBE.md) +- [3.11 UNSUBACK – 取消订阅确认](0311-UNSUBACK.md) +- [3.12 PINGREQ – 心跳请求](0312-PINGREQ.md) +- [3.13 PINGRESP – 心跳响应](0313-PINGRESP.md) +- [3.14 DISCONNECT –断开连接](0314-DISCONNECT.md) + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + + diff --git a/mqtt/0314-DISCONNECT.md b/mqtt/0314-DISCONNECT.md index e56eec9..4a74ce5 100644 --- a/mqtt/0314-DISCONNECT.md +++ b/mqtt/0314-DISCONNECT.md @@ -1,20 +1,3 @@ -# 第三章 MQTT控制报文 - -- [3.1 CONNECT – 连接服务端 20](0301-CONNECT.md) -- [3.2 CONNACK – 确认连接请求 28](0302-CONNACK.md) -- [3.3 PUBLISH – 发布消息 30](0303-PUBLISH.md) -- [3.4 PUBACK –发布确认 33](0304-PUBACK.md) -- [3.5 PUBREC – 发布收到(QoS 2,第一步) 34](0305-PUBREC.md) -- [3.6 PUBREL – 发布释放(QoS 2,第二步) 35](0306-PUBREL.md) -- [3.7 PUBCOMP – 发布完成(QoS 2,第三步) 36](0307-PUBCOMP.md) -- [3.8 SUBSCRIBE - 订阅主题 37](0308-SUBSCRIBE.md) -- [3.9 SUBACK – 订阅确认 40](0309-SUBACK.md) -- [3.10 UNSUBSCRIBE –取消订阅 41](0310-UNSUBSCRIBE.md) -- [3.11 UNSUBACK – 取消订阅确认 43](0311-UNSUBACK.md) -- [3.12 PINGREQ – 心跳请求 44](0312-PINGREQ.md) -- [3.13 PINGRESP – 心跳响应 45](0313-PINGRESP.md) -- [3.14 DISCONNECT –断开连接 45](0314-DISCONNECT.md) - ## 3.14 DISCONNECT –断开连接 DISCONNECT报文是客户端发给服务端的最后一个控制报文。表示客户端正常断开连接。 @@ -51,3 +34,46 @@ DISCONNECT报文没有有效载荷。 - **必须**丢弃任何与当前连接关联的未发布的遗嘱消息,具体描述见 3.1.2.5节 \[MQTT-3.14.4-3\]。 - **应该**关闭网络连接,如果客户端 还没有这么做。 + + +## 第三章目录 MQTT控制报文 + +- [3.0 Contents – MQTT控制报文](03-ControlPackets.md) +- [3.1 CONNECT – 连接服务端](0301-CONNECT.md) +- [3.2 CONNACK – 确认连接请求](0302-CONNACK.md) +- [3.3 PUBLISH – 发布消息](0303-PUBLISH.md) +- [3.4 PUBACK –发布确认](0304-PUBACK.md) +- [3.5 PUBREC – 发布收到(QoS 2,第一步)](0305-PUBREC.md) +- [3.6 PUBREL – 发布释放(QoS 2,第二步)](0306-PUBREL.md) +- [3.7 PUBCOMP – 发布完成(QoS 2,第三步)](0307-PUBCOMP.md) +- [3.8 SUBSCRIBE - 订阅主题](0308-SUBSCRIBE.md) +- [3.9 SUBACK – 订阅确认](0309-SUBACK.md) +- [3.10 UNSUBSCRIBE –取消订阅](0310-UNSUBSCRIBE.md) +- [3.11 UNSUBACK – 取消订阅确认](0311-UNSUBACK.md) +- [3.12 PINGREQ – 心跳请求](0312-PINGREQ.md) +- [3.13 PINGRESP – 心跳响应](0313-PINGRESP.md) +- [3.14 DISCONNECT –断开连接](0314-DISCONNECT.md) + +### 第三章目录 MQTT控制报文 + +- [3.0 Contents – MQTT控制报文](03-ControlPackets.md) +- [3.1 CONNECT – 连接服务端](0301-CONNECT.md) +- [3.2 CONNACK – 确认连接请求](0302-CONNACK.md) +- [3.3 PUBLISH – 发布消息](0303-PUBLISH.md) +- [3.4 PUBACK –发布确认](0304-PUBACK.md) +- [3.5 PUBREC – 发布收到(QoS 2,第一步)](0305-PUBREC.md) +- [3.6 PUBREL – 发布释放(QoS 2,第二步)](0306-PUBREL.md) +- [3.7 PUBCOMP – 发布完成(QoS 2,第三步)](0307-PUBCOMP.md) +- [3.8 SUBSCRIBE - 订阅主题](0308-SUBSCRIBE.md) +- [3.9 SUBACK – 订阅确认](0309-SUBACK.md) +- [3.10 UNSUBSCRIBE –取消订阅](0310-UNSUBSCRIBE.md) +- [3.11 UNSUBACK – 取消订阅确认](0311-UNSUBACK.md) +- [3.12 PINGREQ – 心跳请求](0312-PINGREQ.md) +- [3.13 PINGRESP – 心跳响应](0313-PINGRESP.md) +- [3.14 DISCONNECT –断开连接](0314-DISCONNECT.md) + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + + diff --git a/mqtt/04-OperationalBehavior.md b/mqtt/04-OperationalBehavior.md index 5aa9322..bc90a5a 100644 --- a/mqtt/04-OperationalBehavior.md +++ b/mqtt/04-OperationalBehavior.md @@ -306,3 +306,9 @@ QoS 2的消息可变报头中有报文标识符。2.3.1节提供了有关报文 客户端或服务端实现可能会遇到瞬时错误(Transient Error)(例如内部缓冲区满了的情况)导致无法成功处理MQTT报文。 如果客户端或服务端处理入站控制报文时遇到了瞬时错误,它**必须**关闭传输那个控制报文的网络连接 \[MQTT-4.8.0-2\]。如果服务端发现了瞬时错误,它**不应该**断开连接或者执行任何对其它客户端有影响的操作。 + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + + diff --git a/mqtt/05-Security.md b/mqtt/05-Security.md index 9b77d81..d302a9b 100644 --- a/mqtt/05-Security.md +++ b/mqtt/05-Security.md @@ -174,3 +174,9 @@ TLS [\[RFC5246\]](#RFC5246) 可以对网络传输的数据加密。如果有效 **[\[FIPS1402\]](#FIPS1402) (FIPS PUB 140-2) 加密模块的安全要求** **[\[PCIDSS\]](#PCIDSS) PCI-DSS第三方支付行业数据安全标准** **[\[NSAB\]](#NSAB) NSA加密组合B + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + + diff --git a/mqtt/06-WebSocket.md b/mqtt/06-WebSocket.md index 817d187..853c25e 100644 --- a/mqtt/06-WebSocket.md +++ b/mqtt/06-WebSocket.md @@ -34,3 +34,9 @@ |----------------|----------------------------------------------------------------| | 子协议通用名 | mqtt | | 子协议定义 | http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html | + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + + diff --git a/mqtt/07-Conformance.md b/mqtt/07-Conformance.md index 5acdf7b..a257759 100644 --- a/mqtt/07-Conformance.md +++ b/mqtt/07-Conformance.md @@ -49,3 +49,9 @@ MQTT实现可以同时是MQTT客户端和MQTT服务端。接受入站连接和 - 第七章 – 一致性目标 满足一致性要求的客户端**必须**支持使用一个或多个底层传输协议,只要它提供有序的、可靠的、双向字节流(从客户端到服务端和从服务端到客户端)\[MQTT-7.1.2-1\]。但是一致性并不依赖于它支持任何特定的传输协议。客户端**可以**支持第4.2节列出的任何传输协议,或者任何其它满足 \[MQTT-7.1.2-1\] 要求的传输协议。 + +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + + diff --git a/mqtt/08-AppendixB.md b/mqtt/08-AppendixB.md index 98c962f..51fa19d 100644 --- a/mqtt/08-AppendixB.md +++ b/mqtt/08-AppendixB.md @@ -187,3 +187,8 @@ - 发送PUBCOMP报文之后,接收者必须将包含相同报文标识符的任何后续PUBLISH报文当作一个新的发布。 +### 项目主页 + +- [MQTT协议中文版](https://github.com/mcxiaoke/mqtt) + +