学习认识 MQTT 协议
掌握学习MQTT协议
本文章学习借鉴于太极创客团队,以表感谢。官网http://www.taichi-maker.com/
文章目录
一、MQTT是什么?
MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT)。以上MQTT(消息队列遥测传输)协议规范中的介绍很好地描述了MQTT的全部含义。它是一种很轻的通讯协议。与HTTP之类的协议相比,MQTT在通过网络传输数据时表现出众。该协议的另一个重要特点是易于在客户端实现。因此,MQTT成为了当今世界上最受欢迎的物联网协议。它已广泛应用于车联网、智能家居、即时聊天应用和工业互联网等领域。目前通过MQTT协议连接的设备已经过亿,这些都得益于MQTT 协议为设备提供了稳定、可靠、易用的通信基础。
1.MQTT版本
目前MQTT主流版本有两个,分别是MQTT3.1.1和MQTT5。MQTT3.1.1是在2014年10月发布的,而MQTT5是在2019年3月发布的。由于MQTT3.1.1与MQTT5的时间相差了将近五年,且MQTT5的发布时间距今不久,因此在本文书写时(2020年10月),MQTT3.1.1仍然主流版本。
- MQTT3.1.1是MQTT5的基础,因此掌握了MQTT3.1.1后可以通过进一步学习掌握MQTT5的使用。
- 当前多种流行编程语言的MQTT客户端库仍然只支持MQTT3.1.1,而不支持MQTT5。
- 目前物联网环境中的大量设备仍然使用MQTT3.1.1协议而不支持MQTT5协议。
如果想要使用MQTT5。那么无需重新学习MQTT5,而只要利用MQTT3.1.1的基础再学习MQTT5的新功能就可以了。
二、MQTT基本原理
在MQTT协议通讯中,有两个最为重要的角色。它们分别是服务端和客户端。首先我们来初步了解一下它们。
1. MQTT服务端
MQTT服务端通常是一台服务器。它是MQTT信息传输的枢纽,负责将MQTT客户端发送来的信息传递给MQTT客户端。MQTT服务端还负责管理MQTT客户端。确保客户端之间的通讯顺畅,保证MQTT消息得以正确接收和准确投递。
2. MQTT客户端
MQTT客户端可以向服务端发布信息,也可以从服务端收取信息。我们把客户端发送信息的行为成为“发布”信息。而客户端要想从服务端收取信息,则首先要向服务端“订阅”信息。“订阅”信息这一操作很像我们在视频网站订阅某一部电视剧。当这部电视剧上新后,视频网站会向订阅了该剧的用户发送信息,告诉他们有新剧上线了。
MQTT主题
刚刚我们在讲解MQTT客户端订阅信息时,使用了用户在视频网站订阅电视剧这个