美文网首页
MQTT 协议笔记

MQTT 协议笔记

作者: 恒与行 | 来源:发表于2022-01-25 23:40 被阅读0次
  • MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议。

  • 用MQTT 3.1.1版本 5的版本还没有流行


  • MQTT 客户端: 数据产生和数据接收的角色都称为客户端.(传感器和APP都需要接收和发送数据所以他们都是客户端.)
  • MQTT服务端: 接收和分发数据的服务器.可以解决网络不稳定,以及多设备分发的问题.
    *MQTT 主题: 发布与订阅 都需要主题. 服务器也是根据主题来管理数据的(接收和分发)发布者发布数据到相应的主题,订阅者得到服务器推送已经订阅主题的数据.
  • MQTT通讯的三个特点,彼此可独立,空间可分离、时间可异步。

MQTT与服务器的连接

MQTT连接服务器一共有两部

  1. 客户端向服务端发送请求连接.也就是发送一个请求数据包叫做:CONNECT
  • CONNECT 所包含的内容(示例):


    image.png
  • clientId: 客户端名字,不同的客户端不能有相同的名字
  • cleanSession:干净会话,服务端不保存数据,设置为flase会要求客户端对接收信息进行确认,如果没有得到确认会认为数据没发送到,会保留数据,反复重新发送.确保数据准确到达.这个字段就是告诉服务端我是不是一个重要的客户端用的. 重要的会话要设置为flase.光设置这个是不够的还需要QoS>0 以后在讲.
  • keepAlive :心跳时间间隔.给设备连接状态可知用的.每个客户端给服务器发送心跳包的间隔.如果超过时间就是掉线了.
  1. 服务端接收到客户端请求后向客户端发送连接确认,也是发送一个数据包叫做:CONNACK
  • CONNACK 所包含的内容:


    image.png
  • returnCode: 连接返回码 成功连接返回0,1-5是连接错误.具体表达什么意思网上查.
  • sessionPresent: 当前会话.值为true,表示上个会话有内容没有确认还存有上次未发送的信息.和干净会话相关.
  1. Publish 界面有QoS 0 1 2可选
  2. Reained 就是 retainFlag后面讲解 选中后,后订阅的会立即发送此条信息 只会保留最后一条.

MQTT.fx连接MQTT服务端

  1. MQTT公用服务端:然也物联 www.ranye-iot.net ,MQTT服务器地址:test.ranye-iot.net,TCP端口:1883,TCP/TLS端口:8883
  2. clientId:英文字符,不重复即可
  3. keepalive
  4. clean session
  5. 订阅主题 Subscribe:输入主题 点击订阅,多了一条右上角0 表示接收数据数量
  6. 发布信息 Publish : 右侧输入主题名称 ,然后输入信息内容 点Publish

ESP8266连接MQTT服务端

  1. PubSubClient库最流行 用这个.
    暂时略过 需要编程时回来看看思路

MQTT客户端发布/订阅/取消 主题

  1. PUBLISH 发布信息
  • 客户端给服务器发送PUBLISH报文.
  • 内容如下


    image.png
    • topicName 主题名字: 发布的主题.
    • payload 发布的具体内容
    • retainFlag 保留标志,当客户端订阅时正常不会给客户端发送信息,只有在新的数据产生时才会发送.如果时间很久新来的客户端获取不到数据.如果retainFlag为True,客户端在订阅后马上会收到为True的这些内容.(貌似只保留最后一个?)
    • packetId 数据包id:数据包编号.服务器管理数据包用的
    • qos 服务质量:决定数据信息重要性.0最低
    • dupFlag 重发标志,如果信息为重新发的会为True
  1. SUBSCRIBE 订阅主题
  • 客户端给服务器发送SUBSCRIBE报文.
  • 报文中可以包含一个或多个主题名字
  • 也有Qos
  1. SUBACK 订阅确认
    • 服务端收到订阅请求后,回复的订阅确认包
    • 订阅返回码 有没有成功的订阅主题. 0/1/2都为成功取决于订阅请求时候的QoS0/QoS1/QoS2. 128为订阅失败
  2. UNSUBSCRIBE 取消订阅
    • 客户端向服务端发送 取消订阅包
    • topic 主题可以有一个或者多个.


      image.png

ESP8266 发布信息

相关文章

  • 树莓派的MQTT配置

    参考文章 MQTT学习笔记——MQTT协议体验 Mosquitto安装和使用 主要记录初次接触树莓派和MQTT的一...

  • MQTT 折腾笔记----协议简读

    MQTT 折腾笔记----协议简读 http://www.cnblogs.com/youxilua/archive...

  • MQTT协议笔记

    MQTT MQTT协议基于TCP/IP,提供有序、无损、双向连接适用范围:在低带宽、不可靠的网络下提供基于云平台的...

  • MQTT 协议笔记

    MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议。 用MQTT 3.1.1版本 5的版本还没有流行 M...

  • MQTT协议总结

    MQTT Protocol MQTT协议特性 一句话总结:MQTT是一个简单,轻量的消息发布/订阅协议。 MQTT...

  • 物联网mqtt协议

    mqtt协议学习与使用 一.先简单介绍一下mqtt协议 mqtt协议是基于Tcp/ip 的一种通信协议,是建立在可...

  • MQTT协议简单实践

    #一、 实验目的 学习了解MQTT协议,并会简单的使用。 #二、实验内容 熟悉使用MQTT协议,并利用MQTT进行...

  • MQTT 协议 Keep Alive 详解

    MQTT 协议中的 Keep Alive 机制 为什么需要 Keep Alive MQTT 协议[https://...

  • 使用 MQTT 实现发布订阅功能 发送订阅控制Esp8266

    Connect 连接 MQTT 协议基于 TCP/IP 协议,MQTT Broker 和 Client 都有需要有...

  • 基于MQTT协议实现Broker

    写在前面: 前一篇文字<<基于MQTT协议谈谈物联网开发>>主要叙述了MQTT协议的编解码以及基于MQTT协议的一...

网友评论

      本文标题:MQTT 协议笔记

      本文链接:https://www.haomeiwen.com/subject/wllghrtx.html