MQTT学习笔记一

一、MQTT概览(摘自百度百科):

       MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:
       1、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;
       2、对负载内容屏蔽的消息传输;
       3、使用 TCP/IP 提供网络连接;
       4、有三种消息发布服务质量:
              a  “至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
              b  “至少一次”,确保消息到达,但消息重复可能会发生。
      c   “只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。
       5、小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;
       6、使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制
 
二、关于发布订阅模式
  

  自己画了一个,简单描述一下,publish client一般是服务提供者,subscribe client 是消费者。

  举个例子,比如你喜欢大幂幂,你想要时刻获得她的动态,以前的做法是你搜索 大幂幂 这个关键词,然后不断刷新页面以获取她的最新消息。

  但是现在有一个追星平台(Publish Client),它会不断跟进大幂幂(topic)的新闻,并即时向broker发布,这时候你只要向broker订阅大幂幂这个topic,当追星平台获取到大幂幂的最新动态,发布给broker,broker就会把这条大幂幂的动态转发给你(subscribe client1)和其他所有和你一样订阅了大幂幂的人(subscribe client 2、3、4。。。。n);

  当然,这个平台不止提供大幂幂这一个明星的动态,它还提供什么热巴啊(topic2)、诗诗啊(topic3)、奶茶啊(topic4)。。。。十八线小明星啊(topic n),这样他们各自的粉丝都能收到自己喜欢的明星的动态。

  这个broker就是个消息分发器,通常是一些代理服务器,比如 Apache Apollo;

  各个client之间不知道彼此的存在。

   

           

  

  

猜你喜欢

转载自www.cnblogs.com/yeyeck/p/9104099.html
今日推荐