文章目录
- MQTT介绍
- 1 MQTT历史
- 2 MQTT版本
MQTT介绍
MQTT
是一个客户端服务端架构
的发布/订阅模式
的消息传输协议
。它的设计思想是轻巧、开放、简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT)。
以上MQTT(消息队列遥测传输)协议规范中的介绍很好地描述了MQTT的全部含义。它是一种很轻的通讯协议。与HTTP
之类的协议相比,MQTT在通过网络传输数据时表现出众。该协议的另一个重要特点是易于在客户端实现。因此,MQTT成为了当今世界上最受欢迎的物联网协议。它已广泛应用于车联网、智能家居、即时聊天应用和工业互联网等领域。目前通过MQTT协议连接的设备已经过亿,这些都得益于MQTT 协议为设备提供了稳定、可靠、易用的通信基础。
1 MQTT历史
MQTT协议最初版本是在1999年建立的。该协议的发明人是的
Andy Stanford-Clark
和Arlen Nipper
。
他们当时正在开发一个利用卫星通讯监控输油管道的项目。为了实现这个项目要求,他们需要开发一种用于嵌入式设备的通讯协议,这种通讯协议必须满足以下条件:
- 易于实现
- 数据传输的服务质量可控
- 占用带宽小
- 传输数据内容不可预知
- 设备连接状态可知
从以上几点不难看出,MQTT 从诞生之初就是专为低带宽、高延迟或不可靠的网络而设计的。虽然历经几十年的更新和变化,以上这些特点仍然是MQTT协议的核心特点。但是与最初不同的是,MQTT协议已经从嵌入式系统应用拓展到开放的物联网(IoT)领域。
2 MQTT版本
目前MQTT主流版本有两个,分别是
MQTT3.1.1
和MQTT5
。MQTT3.1.1是在2014年10月发布的,而MQTT5是在2019年3月发布的。由于MQTT3.1.1与MQTT5的时间相差了将近五年,且MQTT5的发布时间距今不久,因此在本文书写时(2020年10月),MQTT3.1.1仍然主流版本。
MQTT5是在MQTT3.1.1的基础上进行了升级。因此MQTT5是完全兼容MQTT3.1.1的。而MQTT5是在MQTT3.1.1的基础上添加了更多的功能补充完善MQTT协议。
本教程将会重点针对MQTT3.1.1进行介绍,这么做有几点原因:
- MQTT3.1.1是MQTT5的基础,因此掌握了MQTT3.1.1后可以通过进一步学习掌握MQTT5的使用。
- 当前多种流行编程语言的MQTT客户端库仍然只支持MQTT3.1.1,而不支持MQTT5。
- 目前物联网环境中的大量设备仍然使用MQTT3.1.1协议而不支持MQTT5协议。
基于以上几点原因,本教程将以MQTT3.1.1作为重点讲解。毕竟掌握了MQTT3.1.1,对于学习MQTT5是没有任何浪费的。学会MQTT3.1.1后,如果想要使用MQTT5。那么无需重新学习MQTT5,而只要利用MQTT3.1.1的基础再学习MQTT5的新功能就可以了。
内容来自 -----> 太极创客
详情可见太极创客官网,内有Arduino、ESP32等详细教程