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

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

3天内不再提示

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

虹科工业物联网技术 2023-04-21 09:51 次阅读

协议的基础性变化

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

MQTT仍然是MQTT

02

如果您熟悉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

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

04

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


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


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

6a1af8e8-dedf-11ed-ad0d-dac502259ad0.png

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

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

关于虹科 HiveMQ

05

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

6a44ef36-dedf-11ed-ad0d-dac502259ad0.png

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

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

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

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

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

虹科HiveMQ 提供免费版、专业版、企业版 MQTT Broker 产品,并提供 Kafka、企业安全及 MQTT Broker 桥接三种企业级扩展套件,HiveMQ 还提供高效的 MQTT 客户端及云平台,多方位满足用户需求。

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

    关注

    18

    文章

    5779

    浏览量

    134853
  • MQTT
    +关注

    关注

    5

    文章

    558

    浏览量

    22166
收藏 人收藏

    评论

    相关推荐

    mqtt协议和tcp协议区别

    MQTT协议和TCP协议在设计和应用上存在以下主要区别: 1. 起源与设计:MQTT协议诞生于1999年互联网初期,而TCP
    的头像 发表于 04-01 09:15 913次阅读

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

    MQTT协议网关是一个中间件,负责接收来自不同MQTT客户端的消息,并将这些消息转发到MQTT服务器;同时,也能接收来自MQTT服务器的消息
    的头像 发表于 03-11 14:07 259次阅读

    什么是MQTTMQTT协议中的方法

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

    mqtt协议和http协议区别

    MQTT(Message Queuing Telemetry Transport)是一种基于发布/订阅模式的“轻量级”通讯协议,构建于TCP/IP协议上。它是由IBM在1999年发布的。MQT
    的头像 发表于 01-19 15:56 5025次阅读

    如何快速搭建一个MQTT协议的测试环境

    大家好,我是麦叔,之前有小伙伴建议出一期如何快速搭建一个MQTT协议的测试环境,因为自己写的mqtt测试工具总是有这样那样的问题。
    的头像 发表于 12-26 09:28 926次阅读
    如何快速搭建一个<b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>的测试环境

    物联网中的MQTT协议概述

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

    MQTT是什么 MQTT特点

    MQTT 是 Message Queuing Telemetry Transport 的缩写,是一种轻量级的、基于发布/订阅模式的物联网通信协议。 它具有以下特点: •简单易用:MQTT
    的头像 发表于 11-09 15:20 1778次阅读

    MQTT协议和EDP协议该怎么选?

    OneNet支持HTTP,MQTT和EDP,HTTP好像不能下发指令,MQTT和EDP可以,我需要控制个简单的开关,用那个协议更合理些。
    发表于 11-09 07:18

    MQTT协议是什么?工业级路由器网关中的MQTT协议

    的云平台Q都支持设备以MQTT协议接入,所以如果您的设备支持MQTT连接,就可以很容易的对接各云平台(比如ONENET、阿里云、腾讯云等)。CORE提供的MQTT库函
    的头像 发表于 11-08 13:53 834次阅读
    <b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>是什么?工业级路由器网关中的<b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>

    MQTT协议采集网关可自定义格式

    在工业自动化和楼宇自动化领域中,Modbus、MQTT和BACnet/IP是三种常用的通信协议。Modbus是种串行通信协议,常用于连接工业电子设备;
    发表于 10-09 19:33

    MQTT协议通信 - 第14节

    通信MQTT协议
    充八万
    发布于 :2023年09月01日 14:48:38

    MQTT协议通信 - 第5节 #硬声创作季

    通信MQTT协议
    充八万
    发布于 :2023年09月01日 14:41:06

    超干的干货来了!一文了解HTTP协议

    今天我们来了解另一个应用层协议——HTTP协议。推荐阅读《MQTT协议详解「概念、特性、版本及作用」》《TCP/IP协议不止是两个
    的头像 发表于 08-04 08:24 2275次阅读
    超干的<b class='flag-5'>干货</b>来了!一文了解HTTP<b class='flag-5'>协议</b>

    MQTT协议详解 概念、特性、版本及作用

    MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输)是ISO标准下基于发布/订阅方式的轻量级消息协议MQTT通常使用TCP/IP(传输控制协议
    的头像 发表于 08-01 00:09 6826次阅读
    <b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>详解 概念、特性、版本及作用

    MQTT协议的概念和主要特性 MQTT协议于物联网有何好处

    MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是ISO标准下基于发布/订阅方式的轻量级消息协议MQTT通常使用TCP / IP(传输控制
    的头像 发表于 07-28 11:21 1669次阅读
    <b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>的概念和主要特性 <b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>于物联网有何好处