物聯網平臺的數據壓縮功能,可以對設備與物聯網平臺之間的數據傳輸進行壓縮處理。通過對消息的壓縮,達到節約設備流量和提高傳輸速度的效果。本文介紹數據壓縮功能的使用。
使用限制
僅尊享型企業版實例和標準型企業版實例支持數據壓縮。
僅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進行解壓縮,然后再轉給業務使用。
使用示例請參見使用示例。