物联网平台的数据压缩功能,可以对设备与物联网平台之间的数据传输进行压缩处理。通过对消息的压缩,达到节约设备流量和提高传输速度的效果。本文介绍数据压缩功能的使用。
使用限制
仅尊享型企业版实例和标准型企业版实例支持数据压缩。
仅MQTT协议接入支持数据压缩。
每个设备支持压缩或解压缩数据的Topic不超过20个,且Topic不支持通配符。
压缩的数据格式为
.gzip
,压缩算法为deflate。压缩前的消息最大为1 MB。
背景信息
功能说明
数据压缩功能是基于设备与物联网平台间通信Topic实现的,由物联网平台完成通信Topic数据的压缩和解压缩,用户业务系统无需感知压缩过程。
目前只支持MQTT协议的消息压缩,并只对MQTT消息中的Payload进行压缩,压缩的数据格式为.gzip
。
设备可以设置需要压缩数据的通信Topic,一般为数据包大的对应Topic的数据需要压缩。
使用流程
设备上报需要压缩或解压缩的Topic列表。
上报压缩后的数据或下发压缩后的数据。
上报压缩列表
设备上报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进行解压缩,然后再转给业务使用。
使用示例请参见使用示例。