MQTT(Message Queuing Telemetry Transport 消息队列遥测传输协议)是一种客户机服务器发布/订阅消息传递传输协议,它重量轻、开放、简单、设计简单、易于实现。虽然HTTP是网页的史诗标准,不过机器之间(Machine-to-Machine,M2M)的大规模沟通,之前的请求/回答(Request/Response)模式不再合适,取而代之的是发布/订阅(Publish/Subscribe)模式。所以,MQTT已然是物联网不可或缺的标准协议。
MQTT的特性使其非常适合在许多情况下使用,包括受限的环境,如机器间通信(M2M)和物联网(IoT)环境。
该协议在TCP/IP或其他提供有序、无损、双向连接的网络协议上运行,它的功能包括:
– 使用发布/订阅消息模式,提供一对多的消息分发和应用程序解耦。
– 与负载内容无关的消息传递传输。
– 消息传递的三种服务质量:
– 最小化传输开销和协议交换,减少网络流量。
– 异常断开时通知相关方的机制。
使用MQTT的程序或设备,客户端总是建立到服务器的网络连接,它可以
在发布应用程序消息的客户端和已订阅的客户端之间充当中介的程序或设备,一个服务器
MQTT协议为应用程序跨网络传输的数据。当MQTT传输应用程序消息时,它们具有相关的服务质量和主题名称。
订阅包括主题筛选器和最大QoS。订阅与单个会话关联。一个会话可以包含多个订阅。会话中的每个订阅都有不同的主题筛选器。
客户机和服务器之间的有状态交互。有些会话仅在网络连接期间持续,有些会话可以跨越客户机和服务器之间的多个连续网络连接。
附加到应用程序消息的标签,该消息与服务器已知的订阅相匹配。服务器向具有匹配订阅的每个客户机发送应用程序消息的副本。
订阅中包含的一种表达式,表示对一个或多个主题感兴趣。主题筛选器可以包含通配符。
通过网络连接发送的信息包。MQTT规范定义了14种不同类型的控制包,其中一种(发布包)用于传递应用程序消息。