MQTT

The MQTT feed type in ArcGIS Analytics for IoT subscribes to and consume messages from an externally accessible MQTT broker. MQTT stands for Message Queuing Telemetry Transport. It is a publish/subscribe, simple and lightweight messaging protocol, designed for constrained devices and low-bandwidth, high-latency or unreliable networks. The design principles are to minimise network bandwidth and device resource requirements whilst also attempting to ensure reliability and some degree of assurance of delivery.

For more information on MQTT, see the MQTT protocol FAQ.

Example

  • A data analyst wishes to ingest their sensor data made available via an MQTT broker.
  • A transportation department configures an MQTT feed to consume vehicle positions and attribute information.

Usage notes

  • The MQTT broker must be externally accessible on the Internet.
  • For SSL broker connections, prefix the hostname with ssl://.
  • For non-SSL connections, prefix the hostname with tcp://.

After configuring feed connection properties, see Configure input data to learn how to define the schema and the key properties.

Parameters

ParameterExplanationData Type

Host

The hostname of the MQTT broker.

For non-SSL connections, prefix the hostname with tcp://.

For SSL broker connections, prefix the hostname with ssl://.

String

Port

The port of the MQTT broker.

Integer

Username

The username for the MQTT broker.

This parameter is only used if the MQTT topic specified is secured.

String

Password

The password for the MQTT broker.

This parameter is only used if the MQTT topic specified is secured.

Password

Client ID

Specifies the client ID Analytics for IoT will use to connect to the broker.

Note:

Many brokers require a unique client ID for every connected client. It is recommended you not reuse the same client ID specified in other feeds or applications.

If a client ID is not specified, the running feed will use the item ID as a client ID.

String

Topic

The MQTT topic from which Analytics for IoT will consume messages.

String

Quality of Service Level

The Quality of Service (QoS) level defines the guarantee of delivery for a specific message.

  • 0: At most once - the message is sent only once and the client and broker take no additional steps to acknowledge delivery (fire and forget).
  • 1: At least once - the message is re-tried by the sender multiple times until acknowledgement is received (acknowledged delivery).
  • 2: Exactly once - the sender and receiver engage in a two-level handshake to ensure only one copy of the message is received (assured delivery).

Integer

Considerations and limitations

  • The MQTT broker must be externally accessible on the Internet.