Topic updated on September 17, 2021

MQTT Interface

MQTT is a lightweight publish/subscribe messaging protocol designed for M2M (machine to machine) telemetry and IoT applications in low bandwidth environments. The IoT Portal provides a rich MQTT interface to enable you to create applications that use the lightweight MQTT protocol to interact with any of the available services in the platform. MQTT is a binary based protocol were the control elements are binary bytes and not text strings. MQTT uses a command and command acknowledgment format.

Key facts about the MQTT interface

  • Protocol specification available from IBM: here
  • Available on port 1883 for MQTT, and 8883 for MQTT with TLS/SSL encryption.
  • Supports all TR50 commands.
  • Supports additional Server Topics for most common APIs. 
  • Commands are sent on topic api, and replies are received on topic reply.
    Do not use mqtt.receive event to listen to reserved topics api and apiz
  • When you connect, you are automatically subscribed to the following topics:
    • reply/#
    • replyz/#
    • notify/#
  • QoS 0 and 1 are supported.

    QoS levels refer to the connection between a broker and a client. The QoS1 level guarantees that the message will be delivered at least once. In QoS1, the initiator of the request is the one generating the messageId. For example, when a client publishes a message on a topic it should generate a msgid that gets acked by the broker.