Skip to content

Commit

Permalink
add english word for section title, tweak links
Browse files Browse the repository at this point in the history
  • Loading branch information
mcxiaoke committed Feb 6, 2016
1 parent b95bcc6 commit ee53eca
Show file tree
Hide file tree
Showing 25 changed files with 492 additions and 316 deletions.
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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后大部分表格的格式都不太对,会逐步用图片代替。
Expand Down Expand Up @@ -69,3 +69,5 @@ MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议
* Volley镜像: <https://github.com/mcxiaoke/android-volley>

------


4 changes: 3 additions & 1 deletion mqtt/00-Contents.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 目录
# MQTT协议目录

- [前言](00-Preface.md)
- [目录](00-Contents.md)
Expand All @@ -10,3 +10,5 @@
- [第六章 – 使用WebSocket](06-WebSocket.md)
- [第七章 – 一致性目标](07-Conformance.md)
- [附录B - 强制性规范声明](08-AppendixB.md)


31 changes: 17 additions & 14 deletions mqtt/00-Preface.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,55 +2,55 @@

* [OASIS标准](https://www.oasis-open.org/committees/mqtt/) 2014年10月29日

## 规范链接
## 规范链接 (Specification URIs)

### 当前版本:
### 当前版本(This version)

<http:https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.doc> (Authoritative)

<http:https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html>

<http:https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.pdf>

### 以前的版本:
### 以前的版本(Previous version)

<http:https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/cos01/mqtt-v3.1.1-cos01.doc> (Authoritative)

<http:https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/cos01/mqtt-v3.1.1-cos01.html>

<http:https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/cos01/mqtt-v3.1.1-cos01.pdf>

### 最新版本:
### 最新版本(Latest version)

<http:https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.doc> (Authoritative)

<http:https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html>

<http:https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.pdf>

### 技术委员会:
### 技术委员会(Technical Committee)

[结构化信息标准促进组织MQTT技术委员会](https://www.oasis-open.org/committees/mqtt/)

#### 主席:
#### 主席(Chairs)

拉斐尔·J·科恩 (<[email protected]>), 个人

理查德·J·科彭 (<[email protected]>), [IBM](http:https://www.ibm.com/)

#### 编辑:
#### 编辑(Editors)

安德鲁·班克斯 (<[email protected]>), [IBM](http:https://www.ibm.com/)

拉胡尔·吉普塔 (<[email protected]>), [IBM](http:https://www.ibm.com/)

### 相关文档:
### 相关文档(Related work)

#### 本规范与此有关:

- MQTT和NIST网络安全框架1.0版。 编辑是杰夫·布朗和路易·菲利普·拉穆勒。最新版本: <http:https://docs.oasis-open.org/mqtt/mqtt-nist-cybersecurity/v1.0/mqtt-nist-cybersecurity-v1.0.html>.

#### 摘要
### 摘要 (Abstract)

MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范,因此易于实现。这些特点使得它对很多场景来说都是很好的选择,包括受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT),这些场景要求很小的代码封装或者网络带宽非常昂贵。

Expand All @@ -66,15 +66,15 @@ MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议
- 很小的传输消耗和协议数据交换,最大限度减少网络流量
- 异常连接断开发生时,能通知到相关各方。

### 状态
### 状态 (Status)

本文档最后由OASIS成员在上面标示的日期最终修订或批准。批准的级别也在上面列出了。如果要查看本文档最新的修订版请检查上面的 *最新版本* 位置。技术委员会产生的其它修订版和其它技术文档都列在这里:<https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=mqtt#technical>

技术委员会成员对本规范的评论应该发送到技术委员会的邮件列表。其他人应该发送评论到技术委员会的公共评论列表,方法是点击技术委员会网站的 [发送评论](https://www.oasis-open.org/committees/comments/index.php?wg_abbrev=mqtt) 按钮,网页地址是 <https://www.oasis-open.org/committees/mqtt/>

关于实现本规范必不可少的任何专利是否已公开,以及其它的专利许可条款相关的信息,请参考技术委员会网站的知识产权部分((<https://www.oasis-open.org/committees/mqtt/ipr.php>)。

### 引用格式:
### 引用格式(Citation format)

引用此规范时应该使用下面的引文格式:

Expand All @@ -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:https://blog.mcxiaoke.com/)
Expand All @@ -111,3 +112,5 @@ MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议
- [第六章 – 使用WebSocket](06-WebSocket.md)
- [第七章 – 一致性目标](07-Conformance.md)
- [附录B - 强制性规范声明](08-AppendixB.md)


54 changes: 27 additions & 27 deletions mqtt/01-Introduction.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 第一章 概述
# 第一章 概述 Introduction

## 1.1 MQTT协议的组织结构
## 1.1 MQTT协议的组织结构 Organization of MQTT

本规范分为七个章节:

Expand All @@ -13,80 +13,73 @@
- [第七章 – 一致性目标](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字符的编码做了优化。

每一个字符串都有一个两字节的长度字段作为前缀,它给出这个字符串UTF-8编码的字节数,它们在[图例 1.1 UTF-8编码字符串的结构](#_Figure_1.1_Structure) 中描述。因此可以传送的UTF-8编码的字符串大小有一个限制,不能超过 65535字节。

除非另有说明,所有的UTF-8编码字符串的长度都必须在0到65535字节这个范围内。

##### 图例 1.1 UTF-8编码字符串的结构
##### 图例 1.1 UTF-8编码字符串的结构 Structure of UTF-8 encoded strings

| **二进制位** | 7-0 |
|--------------|----------------------------|
Expand All @@ -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** |
|---------|-----------------------|-------|-------|-------|-------|-------|-------|-------|
Expand All @@ -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)


0 comments on commit ee53eca

Please sign in to comment.