MQTT 阿里___MQTT中协议QoS的实现

【参考文章】:基于Mqtt的IM开发

【参考文章】:阿里___MQTT中协议QoS的实现

1. 简介

  MQTT 是一个客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范,因此易于实现。这些特点使得它对很多场景来说都是很好的选择,包括受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT),这些场景要求很小的代码封装或者网络带宽非常昂贵。

2. 特点

  • 轻量级的 machine-to-machine 通信协议。
  • publish/subscribe模式。
  • 基于TCP/IP。
  • 支持QoS。

3. 应用场景

  • 适合于低带宽、不可靠连接、嵌入式设备、CPU内存资源紧张。
  • 是一种比较不错的Android消息推送方案。
  • FacebookMessenger采用了MQTT。
  • MQTT有可能成为物联网的重要协议

4. Qos

4.1 QoS=0

  最多一次,质量级别最低,不需要应答确认。
  尽操作环境所能提供的最大努力分发消息。消息可能会丢失。
  例如,这个等级可用于环境传感器数据,单次的数据丢失没关系,因为不久之后会再次发送。

4.2 QoS=1

  至少一次,有可能重复。
  收到控制报文后需要应答确认,比如创建连接、发消息、收消息、心跳。

4.3 QoS=2

  只有一次,确保消息只到达一次(用于比较严格的计费系统)。
  收到控制报文后需要应答确认,最高的服务质量,需要额外的开销,因为这种质量下,收到控制报文需要双向确认应答。

5. Topic通配符  

  /:用来表示层次,比如a/b,a/b/c。  

  #:表示匹配>=0个层次,比如a/#就匹配a/,a/b,a/b/c。单独的一个#表示匹配所有。不允许 a#和a/#/c。  

  +:表示匹配一个层次,例如a/+匹配a/b,a/c,不匹配a/b/c。单独的一个+是允许的,a+不允许,a/+/b不允许

猜你喜欢

转载自www.cnblogs.com/virgosnail/p/10789939.html