【MQTT】学习笔记1.基本概念

前言

本次学习主要参考了 沉默的小宇宙的【MQTT学习】专栏,但由于我是初次深入学习一个网络协议,有些基础概念需要及时补充,且原博使用的是我不太熟悉的Node.js语言,所以在此整理笔记记录自己的思路和理解。

学习目的

熟悉MQTT协议中Client与Broker的通信过程;
能够借助标准文档、应用手册、学习笔记等资料快速查阅到所需的具体内容。

资源索引

MQTT官方网站
MQTTv5.0标准文档(最新)
MQTTv3.11标准文档(使用广泛)

基本概念

MQTT

Message Queuing Telemetry Transport,消息队列遥测传输

  • 应用层协议
  • 即时通讯协议
  • 基于TCP/IP协议

面向:

  • 传感器和控制设备
  • 大量设备
  • 计算能力有限
  • 低带宽、不可靠网络

Network Connection(网络连接)

  • Client连接到Broker(Client发起)
  • 双向传输有序(Ordered)无损(Lossless)的字节流

Application Message(应用程序消息1

  • 由MQTT协议跨网络的应用程序(个人理解为各个平台的SDK+Broker服务器程序的集合)携带的数据
  • 应用程序消息内含有成对的服务质量(QoS)主题名称(Topic Name)

Client(客户端)

使用MQTT的设备或程序,它可以:

  1. Connect 建立连接
    连接总是由Client发起
  2. Publish 发布
    发布以送出其他客户端可能会感兴趣的消息(用Topic来区分消息)
    这样的客户端称为Publisher
  3. Subscribe 订阅
    订阅以请求获取本客户端感兴趣的消息(用Topic来区分消息)
    这样的客户端称为Subscriber
  4. Unsubscribe 退订
    取消订阅以移除获取消息的请求(移除Topic)
  5. Disconnect 取消连接
    断开和Broker之间的连接

有不同平台、不同语言的MQTT库供各种Client调用。

Broker (服务器)

Publisher与Subscriber之间的中介程序或设备,它可以:

  1. 接受客户端的连接
  2. 接收客户端的消息
  3. 处理订阅和退订请求
  4. 转发与Client的订阅匹配的消息

通常由OneNet、阿里云IoT等服务商提供

Session (会话)

  • Client和Broker之间的状态交互
  • 某些会话的时间和连接的时间相同
  • 其他会话可以跨越同一对Client与Broker之间的多个连续的连接
Client Broker Session 1 Session 2 Session 2 Session 3 Session 2 Client Broker

Subscription(订阅)

  • 包含主题过滤器最大QoS
  • 订阅与单个会话关联,而一个会话可以包含多个订阅
  • 会话中的每个订阅都有一个互不相同的主题过滤器
会话1
会话1
Client
订阅1:Filter1
订阅2:Filter2
订阅3:Filter3
Broker

Topic Name(主题名2

  • 消息的一个标签,与Broker已知的订阅相匹配
  • Broker将消息的副本转发给每个匹配的Client

Topic Filter(主题过滤器)

  • 订阅中包含的表达式,表示对一个或多个Topic感兴趣
  • 可以包含通配符

MQTT Control Packet(MQTT控制包)

  • 通过网络连接发送的信息包
  • 定义了14种3不同类型的控制包,其中的Publish包用于传达应用信息

  1. 以后简称"Message"或"消息" ↩︎

  2. 以后简称"Topic"或"主题" ↩︎

  3. 在MQTT v5.0标准中有15种控制包 ↩︎

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值