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

    文章

    5969

    浏览量

    135830
  • MQTT
    +关注

    关注

    5

    文章

    649

    浏览量

    22422
收藏 人收藏

    评论

    相关推荐

    物联网行业MQTT通信协议详解以及使用

    概述 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是种基于发布/订阅(publish/subscribe)模式的“轻
    的头像 发表于 09-20 17:08 1173次阅读
    物联网行业<b class='flag-5'>中</b><b class='flag-5'>MQTT</b>通信<b class='flag-5'>协议</b>详解以及使用

    MQTT协议网关的工作原理及功能特性

    在物联网的快速发展MQTT协议网关作为连接物联网设备与消息代理服务器的重要桥梁,扮演着不可或缺的角色。MQTT种基于发布/订阅模式的
    的头像 发表于 09-18 17:00 379次阅读
    <b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>网关的工作原理及功能特性

    干货 轻松掌握PCAN-Explorer 6,dll调用文打尽!

    导读:PCAN-Explorer 6(下称“PE6”)作为款专业的CAN/CAN FD网络处理软件,不仅提供了强大的报文监控和发送功能,还通过其创新的dll加载功能,为用户带来了更加灵活和高效
    的头像 发表于 08-29 10:00 414次阅读
    <b class='flag-5'>虹</b><b class='flag-5'>科</b><b class='flag-5'>干货</b> 轻松掌握PCAN-Explorer 6,dll调用<b class='flag-5'>一</b>文打尽!

    MQTT网关:物联网的关键桥梁

    MQTT网关:物联网的关键桥梁 在物联网(IoT)的广阔世界MQTT网关扮演着至关重要的角色。MQTT,全称为Message Queu
    的头像 发表于 08-22 14:15 332次阅读
    <b class='flag-5'>MQTT</b>网关:物联网<b class='flag-5'>中</b>的关键桥梁

    基于MQTT协议云平台的Modbus转MQTT网关

    钡铼Modbus转MQTT网关BL100是款高性能、高性价比的物联网网关,它支持将Modbus协议(包括Modbus RTU和Modbus TCP)的数据转换为MQTT
    的头像 发表于 07-29 17:59 688次阅读
    基于<b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>云平台的Modbus转<b class='flag-5'>MQTT</b>网关

    干货丨轻松掌握PCAN-Explorer 6,dll调用文打尽!

    PCAN-Explorer 6(下称“PE6”)作为款专业的CAN/CAN FD网络处理软件,不仅提供了强大的报文监控和发送功能,还通过其创新的dll加载功能,为用户带来了更加灵活和高效的批量
    的头像 发表于 04-19 10:36 740次阅读
    <b class='flag-5'>虹</b><b class='flag-5'>科</b><b class='flag-5'>干货</b>丨轻松掌握PCAN-Explorer 6,dll调用<b class='flag-5'>一</b>文打尽!

    mqtt协议和tcp协议区别

    带宽和高延迟的网络环境,尤其在物联网环境中表现优秀。而TCP协议是面向连接的、可靠的、基于字节流的传输层通信协议,主要用于互联网和局域网的数据传输。 2. 连接方式:MQTT
    的头像 发表于 04-01 09:15 1541次阅读

    MQTT和Modbus的物联网网关协议的区别分析

    MQTT和Modbus的物联网网关协议区别分析 MQTT(Message Queuing Telemetry Transport)与Modbus是两种广泛应用在物联网环境的通信
    的头像 发表于 03-18 16:50 754次阅读
    <b class='flag-5'>MQTT</b>和Modbus的物联网网关<b class='flag-5'>协议</b>的区别分析

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

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

    干货|HK-TE-200x系列FAQ():如何定义EES的VLAN?

    导读:在今天的干货系列,我们将探讨HK-TE-200x系列交换机的VLAN配置。VLAN(虚拟局域网)在现代网络架构
    的头像 发表于 03-04 14:26 365次阅读
    <b class='flag-5'>虹</b><b class='flag-5'>科</b><b class='flag-5'>干货</b>|HK-TE-200x系列FAQ(<b class='flag-5'>一</b>):如何定义EES的VLAN?

    什么是MQTTMQTT协议的方法

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

    mqtt协议和http协议区别

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

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

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

    MQTT和Modbus的物联网网关协议区别分析

    MQTT个开放的轻量级机器对机器协议,专为物联网交互设计。MQTT 网络包含MQTT
    发表于 11-27 10:58 874次阅读
    <b class='flag-5'>MQTT</b>和Modbus的物联网网关<b class='flag-5'>协议</b>区别分析

    物联网MQTT协议概述

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