MQTT (Message Queue Telemetry Transport),翻译成中文就是,遥测传输协议,其主要提供了订阅/发布两种消息模式,更为简约、轻量,易于使用,特别适合于受限环境(带宽低、网络延迟高、网络通信不稳定)的消息分发,属于物联网(Internet of Thing)的一个标准传输协议。 为什么使用MQTT 协议?MQTT(英语全称,Message Queue Telemetry Transport),中文翻译过来就是遥测传输协议:其主要提供订阅/发布模式,更为简约、轻量,易于使用,针对受限环境(带宽低、网络延迟高、网络通信不稳定),属于物联网(Internet of Thing)的一个传输协议。设计思想是开放、简单、轻量、易于实现。这些特点使它适用于受限环境。例如,但不仅限于此:
对消息中间件,估计大家不得不关心的就是消息的可靠性,也就是消息的发布服务质量,可喜的是,MQTT支持三种消息发布服务质量(QoS):
协议规范的版本MQTT的协议最新的三个版本是:3.1.1,3.1.0和5.0的协议。
其中5.0还只是一个提案(2017年7月13日发布的一个草稿版的提案),所以本篇文章暂时不涉及MQTT 5.0的协议,考虑到目前主流和成熟的MQTT协议的应用都是MQTT 3.1.1的协议,所以笔者还是以MQTT 3.1.1的协议为基准,给大家分享,只要这个会了,其他的自然不在话下。需要注意的是,MQTT 3.1.0和3.1.1 规范,还是有小部分的区别的。比如可变头部中,在3.1.0的规范中,其关键字是,“MQISdP”。 支持MQTT协议消息中间件产品?目前有很多的MQTT消息中间件服务器,如下,都是MQTT协议的服务器端的实现。
支持一对多的消息订阅MQTT协议,支持一对多的基于消息主题(Topic)的消息订阅,也就是一个MQTT的客户端,发送一条特定主题的消息, 能同时支持多个订阅者同时订阅。 如下图所示意,笔记本和手机都订阅了消息主题为temperature的消息,当温度传感器发布了temperature的消息(当前温度为21 C), 笔记本和手机都会受到温度传感器发布的温度。 MQTT客户端的语言支持目前市面上的主流语言都支持。
|