Updated on 2023-10-18 GMT+08:00

MQTT Subscription/Push

Subscription: You can call platform APIs for creating a rule triggering condition, creating a rule action, and modifying a rule triggering condition to configure and activate rules for obtaining the changed device service details and management details. (Service details include device lifecycle management, device data reporting, device message reporting, and device status. Management details include software/firmware upgrade status and result.) The topic for receiving push messages must be specified during subscription creation.

Push: After a subscription is created, the platform pushes the corresponding change to the specified topic based on the type of data subscribed. If an application does not subscribe to a specific type of data notification, the platform does not push the data to the application even if the data has changed. You can use the MQTT client to establish a connection with the platform to receive data. The figure below shows the subscription and push process.

Push mechanism: The IoT platform pushes QoS 0 messages to users. If a user does not establish a connection or does not subscribe to the topic after the connection is established, the IoT platform will delete expired data and data that exceeds the capacity limit in rolling mode when the maximum cache duration (24 hours) or maximum cache size (1 GB) is reached or exceeded.

Subscribing to Data

  1. You can create a rule and add an MQTT message queue as the forwarding target on the console to subscribe to data. For details, see Configuring MQTT Server Subscription.
  2. Call APIs to subscribe to data. For details, see Calling APIs, Creating a Rule Triggering Condition, Creating a Rule Action, and Modifying a Rule Triggering Condition.

Format of Pushed Data

For details on the format of data pushed by the platform to applications after data subscription is created, see Data Transfer APIs.

Constraints

Description

Constraint

Supported MQTT version

3.1.1

Differences from the standard MQTT protocol

  • QoS 0 is supported.
  • Custom topics are supported.
  • Shared subscription is supported.
  • QoS 1 and QoS 2 are not supported.
  • Will and retained messages are not supported.
  • Client publishing is not supported.

Security level supported by MQTTS

TCP + TLS (TLS v1.2)

Supported cipher suites:

  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384

  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

Maximum number of MQTT connection requests allowed for an account per second

10

Maximum number of MQTT connections supported by an account

10 per access credential

Maximum push rate of an MQTT connection

1000 TPS

Maximum message cache duration and size

The maximum duration is one day, and the maximum size is 1 GB. Caching is limited by either of the item. For example, if the cache duration exceeds one day, data will not be cached even if the size does not reach 1 GB.

Recommended heartbeat interval for MQTT connections

Range: 30s to 1200s; recommended: 120s

Publish/Subscribe

  • Shared subscription is supported. Clients that subscribe to the same topic consume pushed data in polling mode. Clients can subscribe to only the topics created in the forwarding rule.
  • Message publishing is not supported.

Maximum number of subscriptions per subscription request

Maximum number of topics supported by an account

Maximum number of topics supported by an account (created during rule action creation)

100