物聯網平台的資料壓縮功能,可以對裝置與物聯網平台之間的資料轉送進行壓縮處理。通過對訊息的壓縮,達到節約裝置流量和提高傳輸速度的效果。本文介紹資料壓縮功能的使用。
使用限制
僅尊享型企業版執行個體和標準型企業版執行個體支援資料壓縮。
僅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進行解壓縮,然後再轉給業務使用。
使用樣本請參見使用樣本。