MQTT-学习笔记01

MQTT

概述

MQTT(Message Queuing Telemetry Transport, 消息队列遥测传输) 由IBM公司于90年代推出的针对移动终端设备的基于TCP/IP 的发布/订阅协议。

MQTT要解决的问题:
  1. 服务器必须要实现高并发,接受大量客户端的接入

  2. 单次数据量小,但不能出错

  3. 必须能够适应高延迟,偶尔断网等通讯不可靠风险

  4. 根据数据的重要程度和特性,设置不同等级的服务(session)

  5. 云端设备发送消息,设备端可以在最短的时间接受,并作出响应

MQTT 的特点是保持常链接,具有一定的实时性。适合需要实时控制的场合,尤其适合执行器。低功耗场合不适合MQTT.

MQTT 的特性
  1. 使用发布/订阅消息模式,解除应用程序耦合

  2. 三种消息发布服务质量(QoS0,QoS1,QoS2)

    1. 至多一次,消息发布完全依赖底层的TCP/IP网络,会发生消息丢失或重复,这一级别可用于对数据采集要求不严格的场景QoS0

    2. 至少一次,确保消息到达,但消息可能会重复发生QoS1

    3. 只有一次,确保消息只到达一次,这一级别可用于要求严格如涉及计费的系统,消息重复或丢失都是不允许的QoS2

MQTT中的三个角色
  1. 发布者 publisher

  2. 订阅者 Subscriber

  3. 代理 Broker

这种结构替代了传统的C/S结构,实现以下解耦:

  1. 空间解耦 -- 发布者和订阅者不需要知道对方

  2. 时间解耦 -- 发布者和订阅者不需要同时运行(离线)

  3. 同步解耦 -- 发布和接收都是异步通讯,无需停止任何处理

MQTT 协议
报文格式:

固定控制报头

剩余数据长度

  1. 可变长度报头

  2. 有效数据载荷

image-20221024204207827

image-20221024210151755

软件实现:

https://mosquitto.org

posted @ 2022-11-04 20:25  逆流的鱼2016  阅读(30)  评论(0编辑  收藏  举报