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

常州专业网站建设公司咨询wordpress会员插件

常州专业网站建设公司咨询,wordpress会员插件,太原免费网站建站模板,设计上海门票一.MQTT协议概述 MQTT#xff08;Message Queuing Telemetry Transport#xff09;是一种轻量级的、基于发布/订阅模式的消息传输协议#xff0c;广泛应用于物联网#xff08;IoT#xff09;领域中的设备连接、传感器数据传输等场景。 MQTT协议使用TCP/IP协议栈作为底层…一.MQTT协议概述 MQTTMessage Queuing Telemetry Transport是一种轻量级的、基于发布/订阅模式的消息传输协议广泛应用于物联网IoT领域中的设备连接、传感器数据传输等场景。 MQTT协议使用TCP/IP协议栈作为底层传输协议支持QoS服务质量级别定义、保留消息等特性。在MQTT中有一个消息代理Broker中心客户端通过连接到消息代理实现发布消息和订阅消息从而实现设备之间的通信和数据传输。 相对于HTTP协议MQTT具有更小的消息头和更少的网络流量占用适合于低带宽、不稳定网络环境下的设备数据传输场景。同时MQTT也支持不同的平台和语言的开发如Java、Python、C、JavaScript等等可以方便地进行二次开发和应用。 二.优点 MQTT协议的优点包括 轻量级MQTT协议设计简单消息头部分较小具有较低的网络流量消耗和较小的内存占用适用于低带宽和资源受限的设备。 低功耗MQTT协议采用异步传输机制客户端可以通过保持持久连接的方式降低网络建立和断开的消耗从而减少设备能耗。 异步通信MQTT采用发布/订阅模式使设备可以实现异步通信即设备可以推送消息到消息代理而不需要立即等待接收方的响应提高了系统的响应速度和吞吐量。 灵活的消息订阅机制MQTT支持多级主题订阅即通配符订阅允许设备订阅特定主题或一组主题从而更灵活地管理和控制消息的订阅。 可靠性和服务质量MQTT协议支持三个不同的服务质量(QoS)级别分别为至多一次、至少一次和正好一次可以根据应用需求选择适当的级别保证消息的可靠传输。 跨平台和语言支持MQTT具有跨平台和跨语言的特性允许在不同的硬件平台和编程语言中使用并且有丰富的开发库和工具可供选择和使用。 综上所述MQTT协议的轻量级、低功耗、异步通信、灵活订阅、可靠传输和跨平台支持等特点使其成为物联网设备连接和通信的理想选择。 三.MQTT通配符 MQTT协议支持使用通配符wildcard进行主题Topic的订阅和发布。通配符的使用可以让设备更灵活地管理和控制消息的订阅。 MQTT协议中有两种通配符 单层通配符Single-Level Wildcard表示为加号。可以用于任意层级的主题的一级通配可以匹配单个层级的主题标识。例如“home//light” 可以匹配 “home/kitchen/light” 和 “home/livingroom/light”但不能匹配 “home/kitchen/table/light”。 多层通配符Multi-Level Wildcard表示为#井号。只能用于主题的最后一级用于匹配多个或零个层级的主题标识。例如“home/kitchen/#” 可以匹配 “home/kitchen/light”、“home/kitchen/table/light” 等。 使用通配符能够使设备更加灵活地定义订阅规则可以根据实际需要选择适当的通配符来订阅特定的主题。这样可以简化设备间的通信和数据传输在物联网中更加方便和高效地实现设备与设备之间的互联互通。 四.MQTT协议通讯流程 MQTT协议通信流程 连接阶段 1.1. 客户端通过TCP/IP协议与MQTT代理建立网络连接。 1.2. 客户端发送CONNECT报文给代理携带客户端标识符、协议版本、保持连接设置等信息。 1.3. 代理验证客户端信息返回CONNACK报文作为连接确认指示连接是否建立成功。 心跳保持 2.1. 已建立连接的客户端和代理之间周期性地交换PINGREQ和PINGRESP报文来保持心跳。 2.2. 客户端在一段时间内未收到PINGRESP报文时可以认为连接断开并进行相应的处理。 发布与订阅 3.1. 客户端发送SUBSCRIBE报文给代理指定要订阅的主题和对应的服务质量QoS级别。 3.2. 代理接收SUBSCRIBE报文记录客户端的订阅信息并发送SUBACK报文给客户端确认订阅请求。 3.3. 客户端向代理发送PUBLISH报文发布消息到指定主题。 3.4. 代理接收到PUBLISH报文后根据订阅关系将消息转发给对应的客户端。 3.5. 客户端收到PUBLISH报文后根据消息的QoS级别发送相应的确认报文PUBACK、PUBREC、PUBREL、PUBCOMP。 3.6. 客户端可以发送UNSUBSCRIBE报文给代理取消订阅一个或多个主题。 关闭连接 4.1. 客户端发送DISCONNECT报文给代理主动关闭连接。 4.2. 代理接收到DISCONNECT报文断开与该客户端的连接。 五.MQTT协议数据结构 MQTT由固定报头可变报头有效载荷三部分组成。 ![2023-11-15T14:59:07.png][4] MQTT协议中的每个报文都包含一个固定报头Fixed Header固定报头中包含了一些固定的信息以标识报文的类型和控制参数。下面是MQTT协议固定报头的基本结构 报文类型Message Type占据固定报头的高4位即最高位的四个比特用于表示报文的类型。可能的取值包括 CONNECT连接请求CONNACK连接确认PUBLISH发布消息PUBACK发布确认PUBREC发布收到QoS 2第一次PUBREL发布释放QoS 2第二次PUBCOMP发布完成QoS 2第三次SUBSCRIBE订阅请求SUBACK订阅确认UNSUBSCRIBE取消订阅请求UNSUBACK取消订阅确认PINGREQ心跳请求PINGRESP心跳响应DISCONNECT断开连接其他有关错误报告和重发的报文类型 控制标志Control Flags占据固定报头的低4位即最低位的四个比特用于表示控制参数。不同报文类型的控制标志具有不同的含义常见的标志包括 DUP指示是否进行重复投递QoS指示消息传递的服务质量等级RETAIN指示是否保留最后一条消息 剩余长度Remaining Length占据固定报头的字节2至5。它表示整个报文的剩余长度不包括固定报头的长度。使用可变长度编码Variable Length Encoding表示允许长度范围从 0 到 268,435,455 字节。 通过固定报头客户端和代理可以快速解析报文确定报文的类型和相应的控制参数进而有效地处理和分发报文。 需要注意的是MQTT协议的固定报头结构是通用的但报文具体的数据结构和长度取决于不同的报文类型。每个报文类型在固定报头后面还会包含各自特定的可变头部Variable Header和有效负载数据Payload这些部分的结构和长度也会根据具体的需求而变化。 MQTT协议中除了固定报头外每个报文还可能包含可变报头Variable Header。可变报头包含了一些特定于消息类型的字段用于提供关于消息的更多信息。下面是MQTT协议中可变报头的一般结构 CONNECT报文的可变报头包含以下字段 协议名称通常为字符串MQTT协议版本号表示MQTT协议的版本例如4代表MQTT 3.1.1连接标志包括clean session标志、will标志、will QoS、will retain标志、user name标志和password标志保持连接时长以秒为单位的整数指示客户端和服务器之间的空闲超时时间客户端标识符客户端的唯一标识符遗嘱主题和消息可选用于指示在不正常断开时发送的遗嘱消息用户名和密码可选用于进行身份验证 PUBLISH报文的可变报头包含以下字段 主题名消息发布到的主题报文标识符仅在QoS级别1和2时存在用于匹配发布的消息和确认消息QoS级别消息的服务质量级别保留标志指示服务器是否应保留消息以及如何处理它 SUBSCRIBE报文的可变报头包含以下字段 报文标识符此订阅请求的标识符订阅主题列表包括主题过滤器和期望的QoS级别 SUBACK报文的可变报头包含以下字段 报文标识符对应的订阅请求的标识符订阅结果列表服务器订阅的每个主题的QoS级别 其他报文类型的可变报头也包含与其功能和语义相关的信息。可变报头的结构和字段取决于消息类型和特定协议版本的要求。通过可变报头可以为每种类型的报文提供必要的信息以便接收方能够正确解释和处理消息。 需要注意的是可变报头并不是所有报文类型都有的但对于那些具有可变报头的报文类型来说可变报头是非常重要的部分它提供了报文的关键信息以便接收方理解和处理报文。 MQTT协议中有效载荷Payload包含了报文的实际数据其结构和内容取决于具体的报文类型和应用需求。以下是几种常见的MQTT报文类型以及它们可能包含的有效载荷 CONNECT报文的有效载荷包含了客户端的连接请求信息主要包括 客户端标识符遗嘱消息和相关设置用户名和密码如果需要认证 CONNACK报文的有效载荷包含了服务器对连接请求的确认信息主要包括 连接确认标志连接结果代码 PUBLISH报文的有效载荷包含了实际发布的消息内容其中包括 主题名消息负载需要传输的实际消息数据报文标识符可能存在于QoS级别为1或2的情况下 SUBSCRIBE报文的有效载荷包含了订阅请求的信息主要包括 一个或多个订阅主题和对应的QoS级别报文标识符 SUBACK报文的有效载荷包含了订阅确认的信息主要包括 与订阅请求一一对应的订阅结果列表包括每个主题的QoS级别 UNSUBSCRIBE报文的有效载荷包含了取消订阅请求的信息主要包括 一个或多个需要取消订阅的主题名 UNSUBACK报文的有效载荷通常为空因为它只是一个简单的确认消息。 PUBACK、PUBREC、PUBREL、PUBCOMP报文的有效载荷通常为空因为它们主要用于消息发布的确认。 PINGREQ和PINGRESP报文没有有效载荷因为它们主要用于维持连接状态而不传输实际数据。 DISCONNECT报文的有效载荷通常为空因为它主要用于终止连接。 需要注意的是有效载荷的具体结构和内容将根据具体的需求和通信的上下文进行定义同时也受到MQTT协议版本和服务质量等级QoS的影响。MQTT的灵活性允许有效载荷的内容可以是任意格式的数据包括文本、二进制数据等。 总的来说有效载荷是MQTT报文中传输实际数据的部分它的结构和内容对于消息的生产者和消费者之间的通信至关重要。
http://www.hkea.cn/news/14257500/

相关文章:

  • wordpress搭建英文网站打开小程序入口直接进入
  • 罗湖医院网站建设商洛网站建设公司电话
  • 做外贸网站公司网站源码什么意思
  • 网站设计原型图怎么做网站建设套餐怎么样
  • php 企业网站管理系统免费学编程国内网站
  • 凤翔做网站wordpress getshell
  • 手机版网站设计广西网站建设公司电话
  • 怎么做网站代拍常州网站建设公司排名
  • 广州市黄埔区建设局网站缙云 网站建设
  • 怎么搭建自己的网站挣钱百度安装应用
  • 济南企业建站网站建设与管理适合女生吗
  • 美橙互联 网站备案厦门 外贸商城网站
  • 合肥网站建设培训中心磁县邯郸网站建设
  • 快手淘客网站是怎么做的东莞专业做外贸网站的公司
  • 邯郸医院网站建设简单的个人简历网页代码
  • 网站开发员需要什么素质带用户中心WordPress主题
  • 免费手机h5模板网站模板英文营销网站建设
  • 西安网站开发制作公司safari网页视频怎么下载
  • 北京视频直播网站建设网站图标怎么设置
  • 基于微信公众号开发网站开发wordpress 排课
  • 极速建站建设国际网站
  • 网站工作室网站metro风格网站模板
  • 流媒体 网站开发灵台教育局网站师资队伍建设
  • 如何建设网站网站WordPress小程序论坛
  • 德阳网站优化郑州网站建设seo优化
  • asp网站js悬浮窗怎么做网页游戏服务端
  • 彩妆网站建设报告十堰seo按天计费
  • ppt接单兼职网站wordpress谷歌广告位插件
  • 旅游网站名称设计广州专业网站建设报价
  • 免费建站工具郑州餐饮网站建设哪家好