数据压缩

物联网平台的数据压缩功能,可以对设备与物联网平台之间的数据传输进行压缩处理。通过对消息的压缩,达到节约设备流量和提高传输速度的效果。本文介绍数据压缩功能的使用。

使用限制

  • 仅尊享型企业版实例和标准型企业版实例支持数据压缩。

  • 仅MQTT协议接入支持数据压缩。

  • 每个设备支持压缩或解压缩数据的Topic不超过20个,且Topic不支持通配符。

  • 压缩的数据格式为.gzip,压缩算法为deflate

  • 压缩前的消息最大为1 MB。

背景信息

功能说明

数据压缩功能是基于设备与物联网平台间通信Topic实现的,由物联网平台完成通信Topic数据的压缩和解压缩,用户业务系统无需感知压缩过程。

目前只支持MQTT协议的消息压缩,并只对MQTT消息中的Payload进行压缩,压缩的数据格式为.gzip

设备可以设置需要压缩数据的通信Topic,一般为数据包大的对应Topic的数据需要压缩。

image

使用流程

  1. 设备上报需要压缩或解压缩的Topic列表。

  2. 上报压缩后的数据或下发压缩后的数据。

image

上报压缩列表

设备上报Topic列表仅需上报一次,重启后Topic列表会继续有效。

  • 上报列表

    接入方式

    Topic

    标准MQTT方式接入

    /sys/${productKey}/${deviceName}/codec/topic/update

    云网关MQTT方式接入

    $iot/things/codec/topic/update

    企业实例接入和云网关方式接入的Topic对应Payload格式相同,如下所示。

    {
        "id":1,
        "version": 1.0,
        "params": [
            {
                "topic": "/productKey/deviceName/user/update",
                "operation": "compress",
                "format": "gzip"
            },
            {
                "topic": "/productKey/deviceName/user/test",
                "operation": "decompress",
                "format": "gzip"
            }
        ]
    }

    参数

    说明

    topic

    表示消息的Topic,该Topic需要为完整的Topic,不支持通配符。

    operation

    • compress:用于下行消息,需要由物联网平台压缩后再下发。

    • decompress: 用于上行消息,需要由物联网平台解压缩后再流转。

    format

    压缩格式,目前仅支持.gzip

  • 返回结果

    接入方式

    Topic

    标准MQTT方式接入

    /sys/${productKey}/${deviceName}/codec/topic/update_reply

    云网关MQTT方式接入

    $iot/things/codec/topic/update_reply

    {
        "id": 1,
        "version": 1.0,
        "code": 200,
        "message": "success"
    }

    参数

    说明

    code

    • 200:表示成功。

    • 其它:表示失败。

    message

    code对应的原因说明。

压缩数据通信

  • 上行消息:需要对Payload使用Gzip压缩后,再进行上报,物联网平台会完成解压缩。

  • 下行消息:物联网平台将Gzip压缩后的数据下发,设备需要先对Payload进行解压缩,然后再转给业务使用。

使用示例请参见使用示例