MQTT (Message Queuing Telemetry Transport)
MQTT: The Standard for IoT Messaging
MQTT is an OASIS standard messaging protocol for the Internet of Things (IoT). It is designed as an extremely lightweight publish/subscribe messaging transport that is ideal for connecting remote devices with a small code footprint and minimal network bandwidth. MQTT today is used in a wide variety of industries, such as automotive, manufacturing, telecommunications, oil and gas, etc.
一、MQTT介绍
翻译MQTT官方介绍:
MQTT:物联网消息传递的标准
MQTT 是用于物联网 (IoT) 的 OASIS 标准消息传递协议。 它被设计为一种极其轻量级的发布/订阅消息传输,非常适合连接具有小代码足迹和最小网络带宽的远程设备。 如今,MQTT 被广泛用于各种行业,例如汽车、制造、电信、石油和天然气等。
1-1 MQTT的特点
-
发布/订阅机制
-
基于TCP/IP协议(应用层协议)
-
报头开销极小(固定头部2字节)
-
可靠的消息分发机制(QoS)
-
支持比较差的网络环境(低带宽)
-
对控制设备硬件要求不高
-
安全的消息分发机制(OpenSSL)
-
Server/Client机制
1-2 MQTT的报头
MQTT报文分为固定报头、可变报头、负载三部分
固定报头用来表示MQTT报文的类型,可变报头来表示对应类型中的一些必要信息,负载部分用来表示具体的数据
固定报头分为类型和标志两部分,类型通过0-15的值来表示报文类型,标志位为固定值,每种类型的标志位都是一样的
1-3 MQTT的原理
- 消息生产者:发布(生成)消息的客户端
- 消息消费者:订阅(消费)消息的客户端
- 服务器/代理/Broker:生产者和消费者的接入和释放;消息的转发
二、MQTT Server
MQTT Server可以使用市面上已经封装好的开源免费应用软件,例如:EMQX
下载并解压emqx压缩包,开启emqx服务,在bin/目录下打开cmd.exe,emqx.cmd start
(关闭服务命令:emqx.cmd stop
)
注意:博主选择下载的是Windows版本
emqx提供Web可视化界面,浏览器访问:localhost:18083