跳到主要内容

MQTT 协议

简介

MQTT(Message Queuing Telemetry Transport)是一种基于发布/订阅(Publish/Subscribe)模式的轻量级通信协议,专门设计用于受限环境下的物联网设备和应用通信。它通常位于 OSI 七层模型中的应用层或传输层,取决于具体的实现方式,目前绝大多数基于 TCP 实现。

MQTT 的主要作用包括:

  • 提供可靠的消息传输:允许设备和应用之间进行低带宽、不稳定网络环境下的可靠消息传输。
  • 实现发布/订阅机制:支持消息发布者(Publisher)向主题(Topic)发布消息,并允许订阅者(Subscriber)订阅感兴趣的主题并接收相应的消息。
  • 节省带宽和资源:采用轻量级的通信协议和高效的消息传输机制,减少了通信开销,节省了带宽和设备资源。

关于 MQTT 的详细介绍,请阅读《MQTT 教程》。

协议报文

MQTT 报文通常包括以下几种类型:

  • 连接请求(Connect):客户端与服务器建立连接时发送的请求。
  • 连接响应(Connack):服务器对连接请求的响应。
  • 订阅请求(Subscribe):客户端向服务器发送订阅请求,订阅感兴趣的主题。
  • 订阅响应(Suback):服务器对订阅请求的响应。
  • 发布消息(Publish):客户端向服务器发布消息,并指定消息的主题和内容。
  • 取消订阅(Unsubscribe):客户端取消对某个主题的订阅请求。
  • 断开连接(Disconnect):客户端与服务器断开连接时发送的消息。

工作流程

MQTT 协议的工作流程通常包括以下步骤:

  1. 建立连接(Connection Establishment):设备或应用向 MQTT 代理(Broker)发起连接请求,建立与代理的通信连接。
  2. 订阅主题(Subscribe to Topic):设备或应用向代理发送订阅请求,订阅感兴趣的主题。
  3. 发布消息(Publish Message):设备或应用向代理发布消息,指定消息的主题和内容。
  4. 代理转发消息(Broker Forwarding):代理接收到发布的消息后,根据订阅关系将消息转发给订阅了相应主题的客户端。
  5. 接收消息(Receive Message):订阅了相应主题的客户端接收到代理转发的消息,并进行相应的处理。

小结

MQTT 是一种轻量级、可靠的通信协议,特别适用于物联网设备和应用之间的通信。它采用发布/订阅模式,实现了设备之间的松耦合通信,同时具有低带宽、低功耗、可靠性高等特点,广泛应用于各种物联网场景中。