MQTT 5.0概述

MQTT是一种轻量级的物联网协议,大幅度降低了网络带宽和设备资源的需求,并支持可靠的数据传输,因此MQTT已成为IoT领域最广泛应用的协议之一。随着IoT设备规模和应用场景的不断扩大,MQTT 5.0协议应运而生,以满足更多新场景需求。本文为您介绍MQTT 5.0的新特性。

背景信息

目前,阿里云物联网平台已支持MQTT 3.1、3.1.1、5.0版本协议,具体的协议请参见MQTT 5.0MQTT 3.1.1MQTT 3.1

阿里云物联网平台已经具备标准MQTT Broker功能,并在此基础上增加了服务端订阅、云产品流转和云端SDK功能,以加快云端业务应用的开发。更多信息,请参见什么是服务端订阅云产品流转概述MQTT 5.0接入概述image..png

使用限制

设备身份注册成功后,针对同一设备身份信息,只可选择一种通信协议接入物联网平台,不可多种类型通信协议同时混用。即一个设备选择使用MQTT 5.0通信协议后,不可再使用MQTT 3.1、3.1.1通信协议。

MQTT 5.0新特性

MQTT 5.0在MQTT 3.1.1的基础上进行功能扩展,在不增加资源消耗、不降低易用性的情况下,提高物联网设备的性能、扩展能力和互操作性。image..png

特性

说明

用户属性

消息头类似于HTTP的Header,可以由用户自定义Key-Value属性,并且支持可扩展的消息属性。

主题别名

使用4字节整型数替换较长的Topic字符串,降低资源消耗。

会话过期

支持在设备离线时,设置保留设备端与服务端之间会话信息的时间。

消息过期

发布消息时支持设置消息过期时间,避免订阅端收到过期消息。

遗嘱消息

设备异常断开连接时,订阅者仍能接收到设备之前发布的消息。

保留消息

设备发布的消息可以设置为保留,这样新的订阅者在订阅时就能接收到之前保留的消息。

共享订阅

多个订阅者可消费同一个topic消息,帮助用户搭建负载均衡系统。

订阅选项

订阅增加选项设置,可以剔除不需要的消息,提高传输效率。

请求与响应模式

扩展请求/响应模式,类似于HTTP协议的RPC调用。

消息格式描述

消息增加Payload格式说明,帮助用户实现消息的透明流转,支持可变的消息负载。

增强端云交互

支持功能参数协商、增强错误码、服务端主动断开等特性,提高问题排查效率。