Files
mqtt/index.html
2019-12-04 16:34:25 +08:00

467 lines
14 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>README</title>
<style type="text/css">
body {
font-family: Helvetica, arial, sans-serif;
font-size: 14px;
line-height: 1.6;
padding-top: 10px;
padding-bottom: 10px;
background-color: white;
padding: 30px; }
body > *:first-child {
margin-top: 0 !important; }
body > *:last-child {
margin-bottom: 0 !important; }
a {
color: #4183C4; }
a.absent {
color: #cc0000; }
a.anchor {
display: block;
padding-left: 30px;
margin-left: -30px;
cursor: pointer;
position: absolute;
top: 0;
left: 0;
bottom: 0; }
h1, h2, h3, h4, h5, h6 {
margin: 20px 0 10px;
padding: 0;
font-weight: bold;
-webkit-font-smoothing: antialiased;
cursor: text;
position: relative; }
h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA09pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoMTMuMCAyMDEyMDMwNS5tLjQxNSAyMDEyLzAzLzA1OjIxOjAwOjAwKSAgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUM2NjlDQjI4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUM2NjlDQjM4ODBGMTFFMTg1ODlEODNERDJBRjUwQTQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QzY2OUNCMDg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QzY2OUNCMTg4MEYxMUUxODU4OUQ4M0REMkFGNTBBNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsQhXeAAAABfSURBVHjaYvz//z8DJYCRUgMYQAbAMBQIAvEqkBQWXI6sHqwHiwG70TTBxGaiWwjCTGgOUgJiF1J8wMRAIUA34B4Q76HUBelAfJYSA0CuMIEaRP8wGIkGMA54bgQIMACAmkXJi0hKJQAAAABJRU5ErkJggg==) no-repeat 10px center;
text-decoration: none; }
h1 tt, h1 code {
font-size: inherit; }
h2 tt, h2 code {
font-size: inherit; }
h3 tt, h3 code {
font-size: inherit; }
h4 tt, h4 code {
font-size: inherit; }
h5 tt, h5 code {
font-size: inherit; }
h6 tt, h6 code {
font-size: inherit; }
h1 {
font-size: 28px;
color: black; }
h2 {
font-size: 24px;
border-bottom: 1px solid #cccccc;
color: black; }
h3 {
font-size: 18px; }
h4 {
font-size: 16px; }
h5 {
font-size: 14px; }
h6 {
color: #777777;
font-size: 14px; }
p, blockquote, ul, ol, dl, li, table, pre {
margin: 15px 0; }
hr {
background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDRjNBN0E2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDRjNBN0I2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NGM0E3ODY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NGM0E3OTY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqqezsUAAAAfSURBVHjaYmRABcYwBiM2QSA4y4hNEKYDQxAEAAIMAHNGAzhkPOlYAAAAAElFTkSuQmCC) repeat-x 0 0;
border: 0 none;
color: #cccccc;
height: 4px;
padding: 0;
}
body > h2:first-child {
margin-top: 0;
padding-top: 0; }
body > h1:first-child {
margin-top: 0;
padding-top: 0; }
body > h1:first-child + h2 {
margin-top: 0;
padding-top: 0; }
body > h3:first-child, body > h4:first-child, body > h5:first-child, body > h6:first-child {
margin-top: 0;
padding-top: 0; }
a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6 {
margin-top: 0;
padding-top: 0; }
h1 p, h2 p, h3 p, h4 p, h5 p, h6 p {
margin-top: 0; }
li p.first {
display: inline-block; }
li {
margin: 0; }
ul, ol {
padding-left: 30px; }
ul :first-child, ol :first-child {
margin-top: 0; }
dl {
padding: 0; }
dl dt {
font-size: 14px;
font-weight: bold;
font-style: italic;
padding: 0;
margin: 15px 0 5px; }
dl dt:first-child {
padding: 0; }
dl dt > :first-child {
margin-top: 0; }
dl dt > :last-child {
margin-bottom: 0; }
dl dd {
margin: 0 0 15px;
padding: 0 15px; }
dl dd > :first-child {
margin-top: 0; }
dl dd > :last-child {
margin-bottom: 0; }
blockquote {
border-left: 4px solid #dddddd;
padding: 0 15px;
color: #777777; }
blockquote > :first-child {
margin-top: 0; }
blockquote > :last-child {
margin-bottom: 0; }
table {
padding: 0;border-collapse: collapse; }
table tr {
border-top: 1px solid #cccccc;
background-color: white;
margin: 0;
padding: 0; }
table tr:nth-child(2n) {
background-color: #f8f8f8; }
table tr th {
font-weight: bold;
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }
table tr td {
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }
table tr th :first-child, table tr td :first-child {
margin-top: 0; }
table tr th :last-child, table tr td :last-child {
margin-bottom: 0; }
img {
max-width: 100%; }
span.frame {
display: block;
overflow: hidden; }
span.frame > span {
border: 1px solid #dddddd;
display: block;
float: left;
overflow: hidden;
margin: 13px 0 0;
padding: 7px;
width: auto; }
span.frame span img {
display: block;
float: left; }
span.frame span span {
clear: both;
color: #333333;
display: block;
padding: 5px 0 0; }
span.align-center {
display: block;
overflow: hidden;
clear: both; }
span.align-center > span {
display: block;
overflow: hidden;
margin: 13px auto 0;
text-align: center; }
span.align-center span img {
margin: 0 auto;
text-align: center; }
span.align-right {
display: block;
overflow: hidden;
clear: both; }
span.align-right > span {
display: block;
overflow: hidden;
margin: 13px 0 0;
text-align: right; }
span.align-right span img {
margin: 0;
text-align: right; }
span.float-left {
display: block;
margin-right: 13px;
overflow: hidden;
float: left; }
span.float-left span {
margin: 13px 0 0; }
span.float-right {
display: block;
margin-left: 13px;
overflow: hidden;
float: right; }
span.float-right > span {
display: block;
overflow: hidden;
margin: 13px auto 0;
text-align: right; }
code, tt {
margin: 0 2px;
padding: 0 5px;
white-space: nowrap;
border: 1px solid #eaeaea;
background-color: #f8f8f8;
border-radius: 3px; }
pre code {
margin: 0;
padding: 0;
white-space: pre;
border: none;
background: transparent; }
.highlight pre {
background-color: #f8f8f8;
border: 1px solid #cccccc;
font-size: 13px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px; }
pre {
background-color: #f8f8f8;
border: 1px solid #cccccc;
font-size: 13px;
line-height: 19px;
overflow: auto;
padding: 6px 10px;
border-radius: 3px; }
pre code, pre tt {
background-color: transparent;
border: none; }
sup {
font-size: 0.83em;
vertical-align: super;
line-height: 0;
}
kbd {
display: inline-block;
padding: 3px 5px;
font-size: 11px;
line-height: 10px;
color: #555;
vertical-align: middle;
background-color: #fcfcfc;
border: solid 1px #ccc;
border-bottom-color: #bbb;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #bbb
}
* {
-webkit-print-color-adjust: exact;
}
@media screen and (min-width: 914px) {
body {
width: 854px;
margin:0 auto;
}
}
@media print {
table, pre {
page-break-inside: avoid;
}
pre {
word-wrap: break-word;
}
}
</style>
</head>
<body>
<h1 id="toc_0">MQTT协议中文版</h1>
<p>by <a href="https://github.com/mcxiaoke">mcxiaoke</a></p>
<p><strong>最新版本: v1.0.5 2019.10.30</strong> </p>
<h2 id="toc_1">文档地址</h2>
<ul>
<li><a href="https://mcxiaoke.gitbooks.io/mqtt-cn/content/">MQTT协议中文版</a></li>
<li><a href="https://www.gitbook.com/book/mcxiaoke/mqtt-cn/details">PDF和ePub下载</a></li>
<li><a href="https://github.com/mcxiaoke/mqtt">MQTT中文翻译项目</a></li>
</ul>
<h2 id="toc_2">概述</h2>
<p>MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范易于实现。这些特点使得它对很多场景来说都是很好的选择特别是对于受限的环境如机器与机器的通信M2M以及物联网环境IoT</p>
<h2 id="toc_3">说明</h2>
<blockquote>
<p>MQTT英文原版协议提供了Word格式和HTML格式我翻译的时候用的Word文档之前一直提供的是Word文档转换的HTML和PDF供浏览和下载最近花时间整理了Markdown版本可以更方便的分章节在线浏览了转换为Markdown后部分表格的格式不太对会逐步用图片代替。</p>
</blockquote>
<h2 id="toc_4">目录</h2>
<p><strong>发现任何翻译问题或格式问题欢迎提PR帮忙完善。</strong></p>
<ul>
<li><a href="mqtt/README">说明</a></li>
<li><a href="mqtt/00-Preface">前言</a></li>
<li><a href="mqtt/00-Contents">目录</a></li>
<li><a href="mqtt/01-Introduction">第一章 - MQTT介绍</a></li>
<li><a href="mqtt/02-ControlPacketFormat">第二章 MQTT控制报文格式</a></li>
<li><a href="mqtt/03-ControlPackets">第三章 MQTT控制报文</a>
<ul>
<li><a href="mqtt/0301-CONNECT">3.1 CONNECT 连接服务端</a></li>
<li><a href="mqtt/0302-CONNACK">3.2 CONNACK 确认连接请求</a></li>
<li><a href="mqtt/0303-PUBLISH">3.3 PUBLISH 发布消息</a></li>
<li><a href="mqtt/0304-PUBACK">3.4 PUBACK –发布确认</a></li>
<li><a href="mqtt/0305-PUBREC">3.5 PUBREC 发布收到QoS 2第一步</a></li>
<li><a href="mqtt/0306-PUBREL">3.6 PUBREL 发布释放QoS 2第二步</a></li>
<li><a href="mqtt/0307-PUBCOMP">3.7 PUBCOMP 发布完成QoS 2第三步</a></li>
<li><a href="mqtt/0308-SUBSCRIBE">3.8 SUBSCRIBE - 订阅主题</a></li>
<li><a href="mqtt/0309-SUBACK">3.9 SUBACK 订阅确认</a></li>
<li><a href="mqtt/0310-UNSUBSCRIBE">3.10 UNSUBSCRIBE –取消订阅</a></li>
<li><a href="mqtt/0311-UNSUBACK">3.11 UNSUBACK 取消订阅确认</a></li>
<li><a href="mqtt/0312-PINGREQ">3.12 PINGREQ 心跳请求</a></li>
<li><a href="mqtt/0313-PINGRESP">3.13 PINGRESP 心跳响应</a></li>
<li><a href="mqtt/0314-DISCONNECT">3.14 DISCONNECT –断开连接</a></li>
</ul></li>
<li><a href="mqtt/04-OperationalBehavior">第四章 操作行为</a></li>
<li><a href="mqtt/05-Security">第五章 安全</a></li>
<li><a href="mqtt/06-WebSocket">第六章 使用WebSocket</a></li>
<li><a href="mqtt/07-Conformance">第七章 一致性目标</a></li>
<li><a href="mqtt/08-AppendixB">附录B - 强制性规范声明</a></li>
</ul>
<hr>
<h2 id="toc_5">旧版文档</h2>
<blockquote>
<p>已过期建议使用GitBook版本
最新版本: v1.0.1 2015.10.22</p>
</blockquote>
<table>
<thead>
<tr>
<th>文档</th>
<th>连接</th>
</tr>
</thead>
<tbody>
<tr>
<td>中文版 HTML</td>
<td><a href="http://mcxiaoke.github.io/mqtt/protocol/MQTT-3.1.1-CN.html">MQTT 3.1.1 中文版</a></td>
</tr>
<tr>
<td>中文版 PDF</td>
<td><a href="http://mcxiaoke.github.io/mqtt/protocol/MQTT-3.1.1-CN.pdf">MQTT 3.1.1 中文版</a></td>
</tr>
<tr>
<td>英文版 HTML</td>
<td><a href="http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.html">MQTT Version 3.1.1</a></td>
</tr>
<tr>
<td>英文版 PDF</td>
<td><a href="http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mqtt-v3.1.1.pdf">MQTT Version 3.1.1</a></td>
</tr>
</tbody>
</table>
<h2 id="toc_6">许可协议</h2>
<ul>
<li><a href="https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode">署名-非商业性使用-相同方式共享 4.0 国际</a></li>
</ul>
<hr>
<h2 id="toc_7">联系方式</h2>
<ul>
<li>Blog: <a href="http://blog.mcxiaoke.com">http://blog.mcxiaoke.com</a></li>
<li>Github: <a href="https://github.com/mcxiaoke">https://github.com/mcxiaoke</a></li>
<li>Email: <a href="mailto:github#mcxiaoke.com">github@mcxiaoke.com</a></li>
</ul>
<h2 id="toc_8">开源项目</h2>
<ul>
<li>Rx文档中文翻译: <a href="https://github.com/mcxiaoke/RxDocs">https://github.com/mcxiaoke/RxDocs</a></li>
<li>MQTT协议中文版: <a href="https://github.com/mcxiaoke/mqtt">https://github.com/mcxiaoke/mqtt</a></li>
<li>Awesome-Kotlin: <a href="https://github.com/mcxiaoke/awesome-kotlin">https://github.com/mcxiaoke/awesome-kotlin</a></li>
<li>Kotlin-Koi: <a href="https://github.com/mcxiaoke/kotlin-koi">https://github.com/mcxiaoke/kotlin-koi</a></li>
<li>Next公共组件库: <a href="https://github.com/mcxiaoke/Android-Next">https://github.com/mcxiaoke/Android-Next</a></li>
<li>PackerNg极速打包: <a href="https://github.com/mcxiaoke/packer-ng-plugin">https://github.com/mcxiaoke/packer-ng-plugin</a></li>
<li>Gradle渠道打包: <a href="https://github.com/mcxiaoke/gradle-packer-plugin">https://github.com/mcxiaoke/gradle-packer-plugin</a></li>
<li>EventBus实现xBus: <a href="https://github.com/mcxiaoke/xBus">https://github.com/mcxiaoke/xBus</a></li>
<li>蘑菇饭App: <a href="https://github.com/mcxiaoke/minicat">https://github.com/mcxiaoke/minicat</a></li>
<li>饭否客户端: <a href="https://github.com/mcxiaoke/fanfouapp-opensource">https://github.com/mcxiaoke/fanfouapp-opensource</a></li>
<li>Volley镜像: <a href="https://github.com/mcxiaoke/android-volley">https://github.com/mcxiaoke/android-volley</a></li>
</ul>
<hr>
</body>
</html>