当前位置: 首页 > news >正文

asp.net网站开发全过程淘宝客网站开发教程

asp.net网站开发全过程,淘宝客网站开发教程,服务器的作用和用途,wordpress 信息录入消息格式 MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息协议,专为低带宽、高延迟或不可靠的网络设计,广泛应用于物联网(IoT)设备之间的通信。MQTT消息体的结构遵循MQTT协议规范&#xff0…

消息格式

MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息协议,专为低带宽、高延迟或不可靠的网络设计,广泛应用于物联网(IoT)设备之间的通信。MQTT消息体的结构遵循MQTT协议规范,主要由以下几个部分组成:

MQTT消息格式

MQTT的消息传输基于发布/订阅模式,通过主题(Topic)进行消息路由。每个从客户端发送到服务器(或服务器发送到客户端)的消息都包含一个固定头部(Fixed Header),可变头部(Variable Header,视消息类型而定),以及有效载荷(Payload)。下面是对这些组成部分的详细说明:

1. 固定头部(Fixed Header)

固定头部是所有MQTT消息都必须包含的部分,它携带了关于消息的基本信息,如消息类型、标志位等。

  • 消息类型:标识消息的目的,例如CONNECT(连接服务端)、PUBLISH(发布消息)、SUBSCRIBE(订阅主题)等。
  • 标志位:根据消息类型的不同,可能包括一些额外的控制标志。
  • 剩余长度:表示后面跟随的数据(可变头部+有效载荷)的字节长度。
2. 可变头部(Variable Header)

并不是所有的MQTT消息都需要可变头部,它的存在与否取决于消息类型。可变头部通常包含一些特定于消息类型的附加信息,比如:

  • PUBLISH消息中,它包含了主题名称(Topic Name)和包标识符(Packet Identifier,对于QoS级别大于0的消息)。
  • CONNECT消息中,它会包含协议名、协议版本、连接标志等信息。
3. 有效载荷(Payload)

有效载荷是消息的实际内容,具体内容依赖于消息类型:

  • 对于PUBLISH消息,有效载荷就是实际要传输的数据,可以是任何格式(如JSON、XML、纯文本等)。
  • 对于SUBSCRIBE消息,有效载荷则是一组主题过滤器及其对应的QoS等级。
  • 其他类型的消息(如CONNECTCONNACK等)的有效载荷可能是空的,或者包含少量特定数据。

MQTT数据包结构图如下:

固定头结构如下图: 

 

消息发布机制

MQTT(Message Queuing Telemetry Transport)协议定义了客户端向服务器(broker)发布消息的方式,这些方式主要围绕着如何指定主题、设置服务质量(QoS)等级以及处理其他发布相关的参数。以下是MQTT消息发布的几种关键方式和相关特性:

1. 指定主题(Topic)

在发布消息时,必须指定一个或多个主题。主题是消息的标识符,订阅者通过匹配感兴趣的主题来接收消息。

  • 精确匹配:发布者可以直接指定一个确切的主题名称来发布消息。
  • 通配符使用限制:发布消息时不能使用单级(+)或多级(#)通配符,这些仅用于订阅操作。

2. 设置服务质量(QoS)

发布消息时可以选择三种不同的服务质量级别:

  • QoS 0:最多一次交付。消息发送后不进行确认,适用于对消息丢失容忍度较高的场景。
  • QoS 1:至少一次交付。确保消息至少被送达一次,但可能会重复。每次发送都会等待PUBACK确认。
  • QoS 2:恰好一次交付。提供最高的可靠性保证,确保消息只被送达一次。涉及更复杂的四步握手过程(PUBLISH, PUBREC, PUBREL, PUBCOMP)。

3. Retain标志

发布消息时可以设置保留消息(Retain flag)。如果此标志被设置为true,则该消息将作为该主题的最新状态保存在broker上。任何新订阅此主题的客户端都会立即收到这条保留消息。

  • 清除保留消息:如果你想清除某个主题的保留消息,只需发布一条retain标志为true但内容为空的消息到该主题即可。

4. DUP标志

对于QoS大于0的消息,DUP(Duplicate)标志可能出现在重新发送的消息中,以指示这是一条重发的消息。这有助于接收方识别并正确处理重复的消息。

5. Message Expiry Interval (MQTT v5)

在MQTT v5版本中引入了一个新的特性——消息过期间隔(Message Expiry Interval),允许发布者设定消息的有效期。如果消息在此时间内未被所有目标订阅者接收,则会被broker丢弃。

6. Payload Format Indicator (MQTT v5)

同样是在MQTT v5中新增的功能,Payload Format Indicator允许发布者指示消息体的格式类型(如UTF-8编码文本或其他二进制数据),以便订阅者更好地解析消息内容。

7. Response Topic & Correlation Data (MQTT v5)

这两个属性也是MQTT v5的一部分,用于支持请求/响应模式。Response Topic指定了应答消息应当发布的主题,而Correlation Data则可用于关联请求与响应消息。

消息订阅机制

MQTT(Message Queuing Telemetry Transport)协议提供了灵活的消息订阅机制,允许客户端根据需要选择不同的订阅方式。以下是几种主要的订阅方式和相关特性:

1. 主题订阅

这是最基本也是最常用的订阅方式。客户端可以订阅一个或多个主题(Topics),当有消息发布到这些主题时,所有订阅了该主题的客户端都会收到消息。

  • 单级别通配符(+):可以在主题过滤器中使用单个 '+' 符号来代替一层级别的主题名称。例如,home/+/temperature 将匹配 home/livingroom/temperaturehome/kitchen/temperature

  • 多级别通配符(#):'#' 必须位于主题过滤器的末尾,并且代表匹配任意数量的层级。例如,home/# 可以匹配 home/livingroom/temperature, home/kitchen/light, 等等。

2. QoS(Quality of Service)等级

在订阅时,可以选择服务质量(QoS)等级,这决定了消息传递的保证程度:

  • QoS 0:最多一次,消息发送者尝试发送消息一次,不保证送达。
  • QoS 1:至少一次,确保消息至少被送达一次,但可能会重复。
  • QoS 2:恰好一次,确保消息只被送达一次,提供最高的可靠性。

3. 持久会话

通过设置 cleanSession 参数为 false(在 MQTT v5 中称为 Clean Start),客户端可以让服务器保持其会话状态。这意味着即使客户端断开连接,它也能在重新连接后接收到在其离线期间发布的消息。

4. 共享订阅

一些MQTT代理实现了共享订阅功能,允许多个客户端共享对同一主题的订阅。在这种模式下,当一条新消息到达时,只会有一部分订阅者接收该消息,而不是所有的订阅者都收到相同的消息副本。这对于负载均衡非常有用。

5. Retain Handling

MQTT v5 引入了更精细的保留消息处理选项 (Retain Handling),它定义了如何处理保留消息:

  • Retain Handling 0:只要订阅建立,就发送保留消息。
  • Retain Handling 1:只有建立全新的订阅而不是重复订阅时,才发送保留消息。
  • Retain Handling 2:订阅建立时不要发送保留消息。

6. No Local

如果设置了 No Local 标志,则服务端不会将消息转发给发布这条消息的客户端本身。这个选项对于桥接场景特别有用。

7. Retain As Published

另一个 MQTT v5 特性是 Retain As Published,它控制是否保留消息中的 Retain 标识。这对于桥接场景下的跨服务器保留消息传播非常重要。

推荐b站入门讲解视频:MQTT 协议入门与进阶 1_哔哩哔哩_bilibili

MQTT 客户端:MQTTX:全功能 MQTT 客户端工具

相关文档:MQTT协议,终于有人讲清楚了-腾讯云开发者社区-腾讯云

http://www.dtcms.com/a/483689.html

相关文章:

  • 无锡网站优化推广东莞模板网站设计
  • 高级网站开发工程师什么是云速建站服务
  • 建动画网站需要多少钱德阳企业网站建设
  • SpringBootTest运行线程池被拒绝
  • 百度快照和做网站有关系吗企业网站网站建设电话
  • 高港做网站专业网站建设新闻
  • 网页网站设计公司排行榜高端网站创建
  • 工业时序数据分析:波动情况
  • 脚本三合一:设备监控+文档筛选+UUID重命名
  • 数据结构——哈希(自定义hashMap实现、解决哈希冲突、拉链寻址Java实现)
  • 电力电子技术 第二章——稳态分析
  • 湛江做网站苏州厂商如何备案成企业网站
  • 德州极速网站建设小程序网站登录验证码显示不出来
  • PT2000 Dev Studio产生的微码解析一-Channel 1
  • 笔试强训(二)
  • 专业全网推广建站公司网站正能量视频不懂我意思吧
  • Pixel-Perfect:生成像素级深度细节深度提升
  • 如何利用网站赚钱建立网站的公司
  • Java字节码与流量回放
  • 网站开发与设计作业网站全屏轮播怎么做
  • ceph 之跳过监控栈 --skip-monitoring-stack
  • wordpress添加表情合肥建站公司seo
  • 网站建设公司 关于我们目录更新 wordpress
  • 有专门做网站的吗wordpress上看图片慢
  • 2345浏览器网站进入做网站阿里巴巴好还是百度好
  • 云计算平台的技术安全需求主要分为“端-管-云”三个部分
  • 设计报价网站滁州网站定制
  • 杭州租车网站建设重庆沙坪坝做网站
  • 解码Web3:DeFi、GameFi、SocialFi的法律风险警示与合规路径
  • Apache POI SXSSFWorkbook 报错“没有那个文件或目录”问题排查与解决方案