壓縮數據上報
壓縮數據上報
物聯網平臺的數據壓縮功能,可以對設備與物聯網平臺之間的數據傳輸進行壓縮處理。通過對消息的壓縮,達到節約設備流量和提高傳輸速度的效果。本文介紹數據壓縮功能的使用。
使用限制
●每個設備支持壓縮或解壓縮數據的Topic不超過20個,且Topic不支持通配符。 ●壓縮的數據格式為.gzip,壓縮算法為deflate。 ●壓縮前的消息最大為1 MB。
背景信息
功能說明
數據壓縮功能是基于設備與物聯網平臺間通信Topic實現的,由物聯網平臺完成通信Topic數據的壓縮和解壓縮,用戶業務系統無需感知壓縮過程。
目前只支持MQTT協議的消息壓縮,并只對MQTT消息中的Payload進行壓縮,壓縮的數據格式為.gzip。
設備可以設置需要壓縮數據的通信Topic,一般為數據包大的對應Topic的數據需要壓縮。
使用流程
設備上報需要壓縮或解壓縮的Topic列表。
上報壓縮后的數據或下發壓縮后的數據。
上報壓縮列表
設備上報Topic列表僅需上報一次,重啟后Topic列表會繼續有效。
上報列表
上行Topic:/sys/${productKey}/${deviceName}/codec/topic/update
數據格式如下所示:
{
"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 |
|
format | 壓縮格式,目前僅支持 |
返回結果
下行Topic:/sys/${productKey}/${deviceName}/codec/topic/update_reply
數據格式示例:
{
"id": 1,
"version": 1.0,
"code": 200,
"message": "success"
}
數據格式說明:
參數 | 說明 |
code |
|
message | code對應的原因說明。 |
壓縮數據通信
上行消息:需要對Payload使用Gzip壓縮后,再進行上報,物聯網平臺會完成解壓縮。
下行消息:物聯網平臺將Gzip壓縮后的數據下發,設備需要先對Payload進行解壓縮,然后再轉給業務使用。