Using the SpringCore device over MQTT

MQTT is a lightweight machine-to-machine (M2M) connectivity protocol. It is an open standard (OASIS and ISO/IEC 20922) that is widely used for IoT applications, to connect low-end network devices to cloud systems or edge gateways.

The SpringCore device is a MQTT client that connects to a MQTT server (broker). The TCP channel may optionaly be protected by the secure socket layer (MQTT/TLS mode).

MQTT shall not be considered as a way of using the SpringCore device per se. MQTT is only a communication channel between the device and the host that controls, or uses, the device.

There are two reasons for choosing to operate the device through MQTT, instead of using a classical TCP client/server mode or a very basic UDP channel over the LAN:

  1. There are a plenty of MQTT client libraries available for virtually any programming language; using MQTT as the underlying communication channel and a simple semantic reduces the complexity of writing a custom host software to control the SpringCore devices in most situations.
  2. The MQTT broker is a kind of rendez-vous server, that allows a host to control many devices without requiring a direct TCP/IP link. This makes it possible to put the devices and possibly the host on private networks, behind NAT routers, and suppresses the need for complex network configuration. It is even possible to go through a ‘public’ MQTTs broker in the cloud.