MQTT is a messaging protocol for (IoT). It is designed as a lightweight publish/subscribe messaging transport that is ideal for connecting remote devices with a small code footprint and minimal network bandwidth.
MQTT is used for general device communications and for transporting the AWS Shadow State between the device and cloud.
Ioto Device Agent
The Ioto device agent provides an efficient MQTT client that is ideal for connecting to the cloud. It supports:
- MQTT 3.1.1 support
- Connect, publish, subscribe, ping and disconnect messages.
- TLS encryption with ALPN over port 443 to get through firewalls.
- Message quality of service for reliable delivery.
- Retained messages.
- High message throughput with exceptionally low overhead.
- Wait for delivery or acknowledgement options.
- Resilient reconnect on network interruptions.
- Automatic configuration after cloud provisioning.
- Parallelism via fiber coroutines. No ugly callbacks or complex threads.
- Tiny footprint of 8K code.
As devices are provisioned by the Builder into a Device Cloud, the Ioto service will create the necessary X.509 certificates, keys and resources to setup communications.
The certificates and keys are provided to the Ioto device agent as part of the device provisioning, registration/claiming process. The device agent will persist these on the device.