0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MQTT 5协议中的基础更改(一)

虹科工业物联网技术 来源:虹科工业物联网技术 作者:虹科工业物联网技 2023-04-25 09:35 次阅读

01 协议的基础性变化

MQTT 5是对现有协议规范的重大更新,新版本协议具有以下特征:轻量级、易用性、极强的可扩展性、对移动网络的适用性以及通信参与者的解耦。

02 MQTT仍然是MQTT

如果您熟悉MQTT3.1.1,那么您之前知道的关于MQTT的所有原则和功能同样适用于MQTT v5。不同的是,以往功能的部分细节,如“Last Will and Testament”发生了一点变化,某些功能也得到扩展。此外,由虹科HiveMQ实现的额外的流行功能,如“TTL”或“共享订阅”被添加到新的规范中。

协议也稍有变化,增加了一个额外的控制包(AUTH)。

但总的来说,MQTT5仍然可以清楚地识别为MQTT。

03 MQTT 头部属性和原因代码

MQTT5最灵活的新功能之一是可以在MQTT头部中添加自定义键值(key-value)属性。与HTTP等协议类似,MQTT客户端和代理可以添加任意数量的自定义(或预定义)头部来携带元数据。这种元数据可用于应用程序的特定数据,而预先定义的头部信息被用于实现大多数新的MQTT功能。

许多MQTT数据包现在也包括原因代码(Reason Codes)。一个原因代码表明发生了一个预先定义的协议错误。这些原因代码通常是在确认数据包中进行,允许客户端和代理解释错误情况(并有可能解决错误情况)。原因代码有时也被称为否定确认(Negative Acknowledgements)。以下MQTT数据包可以携带原因代码:

CONNACK

PUBACK

PUBREC

PUBREL

PUBCOMP

SUBACK

UNSUBACK

AUTH

DISCONNECT

04 CONNACK Return Codes—指示不支持/未实现功能

随着MQTT的普及,许多公司创建并提供了许多MQTT部署。但并非所有的这些实现都是完全兼容MQTT规范的,因为有时候一些功能并没有实现,比如QoS 2、保留消息持久会话。值得一提的是,虹科HiveMQ是完全符合MQTT规范的,并且支持所有的功能。

MQTT 5为不完整的MQTT实现提供了一种方法,用来表明该代理不支持特定的功能。客户端的工作是确保不使用不支持的功能。代理的部署是在CONNACK数据包(客户端发送CONNECT数据包后由代理发送)中使用预定义的标头来表明不支持特定的功能。当然,这些标头也可以用来向客户端发送通知,说明它没有使用特定功能的权限。

在MQTT 5中,有以下预定义的头部用于指示未实现的功能(或不允许客户端使用的功能):

wKgaomRHLnGAf0pUAADKNge1PFc75.webp


这些返回代码对于在异构环境中沟通各个MQTT客户端的权限具有重要作用。这个新功能的缺点是:MQTT客户端需要自己实现对这些代码的解释,并且需要确保应用程序的程序员仅使用代理支持(客户端有权限)的功能。虹科HiveMQ 100% 支持所有 MQTT 5 功能,因此只有在涉及到部署中的权限时,管理员才会使用这些自定义头文件。

下期文章中,我们将继续给大家介绍MQTT5协议中的基础更改中其他新功能的细节描述。

05 关于虹科 HiveMQ

虹科HiveMQ 是一个基于 MQTT 数据传输的通信平台,旨在将数据快速、高效、可靠地传递给连接的物联网设备,HiveMQ 使用 MQTT 协议在设备和企业平台之间进行实时、双向的数据推送。

wKgZomRHLnKAGfdrAABNxlBCX3o05.webp

虹科HiveMQ 的建立是为了解决企业在构建新的物联网应用时面临的一些关键技术挑战,包括:

构建可靠、可扩展的关键业务物联网应用

快速的数据交付,以满足终端用户对响应式物联网产品的期望

通过有效利用硬件、网络和云资源降低运营成本

将物联网数据整合到现有的企业系统中

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 工业自动化
    +关注

    关注

    17

    文章

    2213

    浏览量

    67155
  • MQTT
    +关注

    关注

    5

    文章

    646

    浏览量

    22391
  • MQTT协议
    +关注

    关注

    0

    文章

    96

    浏览量

    5334
收藏 人收藏

    评论

    相关推荐

    【OneNET麒麟座试用体验】5.基于MQTT协议的OneNET应用

    ,大体结构都这样。OneNET云官方文档:http://open.iot.10086.cn/doc/art253.html#68图 MQTT协议交互图 二、OneNET MQTT
    发表于 05-06 00:12

    MQTT协议介绍之:发布/订阅

    的环境,例如在机器到机器(M2M)和物联网(IoT)环境的通信,只需要小的代码占用和低网络带宽。MQTT规范的摘要很好地描述了MQTT是什么,它是非常轻量级的二进制协议,相比于HTT
    发表于 08-25 19:58

    【HarmonyOS】 MQTT 协议开发入门

    客户端的个或多个topics订阅。(5)Publish。MQTT客户端发送消息请求,发送完成后返回应用程序线程。 五、MQTT协议数据包结
    发表于 11-03 17:38

    MQTT 协议开发入门

    个或多个topics订阅。(5)Publish。MQTT客户端发送消息请求,发送完成后返回应用程序线程。五、MQTT协议数据包结构在MQTT
    发表于 11-05 09:38

    MQTT 协议 开发入门

    ;(2)接受客户发布的应用信息;(3)处理来自客户端的订阅和退订请求;(4)向订阅的客户转发应用程序消息。4.5 MQTT协议的订阅、主题、会话、订阅(Subscription)订
    发表于 11-07 15:51

    MQTT协议的相关资料推荐

    支持,同样的,在ApolloStudio,这标准协议也已被完整的集成在起,使得ApolloStudio既可以作为MQTT Broker
    发表于 12-13 06:42

    MQTT 5协议你知道多少?

    MQTT协议是当今世界上最流行、接受度最高的物联网协议。自推出以来,MQTT协议在各行业应用广泛。本文带大家了解
    的头像 发表于 02-23 13:14 773次阅读

    MQTT协议简介及协议原理

    MQTT协议全称是Message Queuing Telemetry Transport,翻译过来就是消息队列遥测传输协议,它是物联网常用的应用层协议,运行在TCP/IP
    的头像 发表于 02-28 16:16 6887次阅读
    <b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>简介及<b class='flag-5'>协议</b>原理

    MQTT 5协议的基础更改(二)

    上期文章给大家介绍了MQTT 5协议基础更改的信息和CONNACK返回码,本篇文章我们继续介
    的头像 发表于 05-16 10:46 551次阅读
    <b class='flag-5'>MQTT</b> <b class='flag-5'>5</b><b class='flag-5'>协议</b><b class='flag-5'>中</b>的基础<b class='flag-5'>更改</b>(二)

    虹科干货 | MQTT 5协议你知道多少?

    虹科IIoTMQTT5协议你知道多少?虹科干货01MQTT5简介MQTT协议是当今世界上最流行、接受度最高的物联网
    的头像 发表于 03-29 15:44 1008次阅读
    虹科干货 | <b class='flag-5'>MQTT</b> <b class='flag-5'>5</b><b class='flag-5'>协议</b>你知道多少?

    虹科干货 | MQTT 5协议的基础更改

    虹科IIoTMQTT5协议的基础更改)虹科干货01协议的基础性变化
    的头像 发表于 04-21 09:51 502次阅读
    虹科干货 | <b class='flag-5'>MQTT</b> <b class='flag-5'>5</b><b class='flag-5'>协议</b><b class='flag-5'>中</b>的基础<b class='flag-5'>更改</b>(<b class='flag-5'>一</b>)

    虹科干货 | MQTT 5协议的基础更改(二)

    IIoTMQTT5协议的基础更改(二)上期文章给大家介绍了MQTT规范版本
    的头像 发表于 05-15 09:40 539次阅读
    虹科干货 | <b class='flag-5'>MQTT</b> <b class='flag-5'>5</b><b class='flag-5'>协议</b><b class='flag-5'>中</b>的基础<b class='flag-5'>更改</b>(二)

    物联网MQTT协议概述

    MQTT协议已经成了物联网通信中的个热词,今天我们起来学习下关于MQTT
    的头像 发表于 11-25 14:09 1252次阅读

    什么是MQTTMQTT协议的方法

    MQTT种轻量级消息传递协议,由IBM开发,于1999年首次发布。它使用发布/订阅模式并在设备、服务器和应用程序之间转换消息。
    的头像 发表于 02-25 17:04 1231次阅读
    什么是<b class='flag-5'>MQTT</b>?<b class='flag-5'>MQTT</b><b class='flag-5'>协议</b><b class='flag-5'>中</b>的方法

    MQTT协议网关解决方案设计与实施

    的主要功能包括协议转换、消息过滤、安全认证、负载均衡等,以确保消息的可靠传输和系统的稳定运行。随着物联网技术的快速发展,MQTT协议作为种轻量级的发布/订阅消息传输
    的头像 发表于 03-11 14:07 445次阅读