IoT Platform compresses data transmitted between devices and the platform, reducing device traffic and accelerating transmission.
Limits
-
Only Standard and Exclusive Enterprise Edition instances support data compression.
-
Only devices connected over MQTT support data compression.
-
Each device supports up to 20 topics for compression or decompression. Topic names cannot contain wildcard characters.
-
Data is compressed to
GZIPformat using the deflate algorithm. -
Maximum uncompressed data size: 1 MB.
How it works
Overview
Data compression works at the topic level. IoT Platform automatically compresses and decompresses topic data. Business systems on the user side do not need to handle this process.
Only MQTT message payloads can be compressed. Payloads are compressed to GZIP format.
You specify which topics to compress per device. Typically, compress topics that carry large payloads.

Workflow
-
The device registers topics for compression or decompression.
-
The device sends compressed data upstream, or IoT Platform sends compressed data downstream.

Register topics for compression
A device registers topics once. The registration persists across device restarts.
-
Request topics
Connection method
Topic
Connection over MQTT
/sys/${productKey}/${deviceName}/codec/topic/updateMQTT gateway
$iot/things/codec/topic/updateThe payload format is the same for both connection methods. Sample 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" } ] }Parameter
Description
topic
Full topic name. Wildcard characters are not supported.
operation
-
compress: for upstream messages. IoT Platform compresses and sends the data.
-
decompress: for downstream messages. IoT Platform decompresses and forwards the data.
format
Compression format. Set to
.gzip. -
-
Response parameters
Connection method
Topic
Connection over MQTT
/sys/${productKey}/${deviceName}/codec/topic/update_replyMQTT gateway
$iot/things/codec/topic/update_reply{ "id": 1, "version": 1.0, "code": 200, "message": "success" }Parameter
Description
code
-
200: The call was successful.
-
Other values: The call failed.
message
Description of the result code.
-
Transmit compressed data
-
Upstream: the device compresses the message payload with gzip and sends it to IoT Platform, which decompresses it.
-
Downstream: IoT Platform compresses the message payload with gzip and sends it to the device, which decompresses it and forwards the message to a business system.
For implementation details, see Examples.