MQTT简介

2013年9月24日 21:16

mqtt是IBM开发的一个轻量级发布/订阅消息协议。可用于受限环境,有多种语言的实现。协议的特点有:

  • 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。
  • 对负载内容屏蔽的消息传输。 使用 TCP/IP 提供网络连接。
  • 有三种消息发布服务质量:
    1. 至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
    2. 至少一次”,确保消息到达,但消息重复可能会发生。
    3. 只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。
  • 使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。
  •  

实际使用中的一些须知:

QoS

MQTT 的QoS决定broker如何确保消息达到客户端. QoS是双向的,客户端可以以任意QoS发布消息,以任意QoS订阅主题. 例如,客户端A以QoS 2发布消息,客户端B以QoS 0订阅,那么消息将以QoS 0送达B,如果另一个客户端C,以QoS 2订阅这个主题,那么消息将以QoS 2送达客户端C。 如果客户端以QoS 2订阅,消息以QoS 0发布,那么消息将以QoS 0送达客户端。