Device Connectivity
đĄ Device Connectivity & Supported Protocolsâ
đ°ī¸ Overviewâ
MAPS Messaging supports a wide range of connectivity options for integrating IoT devices, gateways, and external systems. The server is protocol-agnostic and offers interfaces over TCP, UDP, DTLS, SSL/TLS, and various IoT protocols like MQTT, MQTT-SN, AMQP, CoAP, STOMP, and LoRa.
Devices can connect over:
- TCP/UDP (raw or protocol-specific)
- Encrypted TLS/SSL interfaces
- DTLS support for UDP protocols such as CoAP and MQTT-SN
- Application-layer protocols like:
- MQTT (3.1, 5.0)
- MQTT-SN (for constrained devices)
- AMQP
- CoAP
- STOMP
- LoRa (with radio throttling)
These interfaces are configured via the NetworkManager.yaml
, NetworkManagerDocker.yaml
, and NetworkConnectionManager.yaml
files.
đ Supported Protocol Interfacesâ
Each interface is defined by:
url
â the binding (IP + port + transport)protocol
â what protocol is servedauth
â the authentication mechanism (e.g.,usernamePassword
,anon
, ordefault
)map
/virtualHost
â optional protocol-specific routing
Protocol | Transport | Encrypted | Config Files | Example URL |
---|---|---|---|---|
MQTT | TCP | â | NetworkManager.yaml | tcp://:::1883/ |
MQTT | SSL/TLS | â | NetworkManager.yaml | ssl://:::1884/ |
MQTT-SN | UDP/DTLS | â | NetworkManagerDocker.yaml | udp://0.0.0.0:1884/ |
AMQP | TCP | â | NetworkManager.yaml | tcp://:::5672/ |
AMQP | SSL/TLS | â | NetworkManager.yaml | ssl://:::5671/ |
CoAP | UDP/DTLS | â | NetworkManagerDocker.yaml | udp://0.0.0.0:5683/ |
STOMP | TCP | â | NetworkManager.yaml | tcp://:::61613/ |
STOMP | SSL/TLS | â | NetworkManager.yaml | ssl://:::61614/ |
LoRa | Radio (UDP) | â | NetworkManager.yaml | N/A |
âšī¸ Note: CoAP and MQTT-SN protocols also support DTLS (Datagram Transport Layer Security) for securing communications over UDP. DTLS settings can be defined in the
NetworkManager.yaml
under thesecurity.dtls
section.
đ Sample Interface Configurationâ
- name: "TCP MQTT Interface"
url: tcp://:::1883/
protocol: mqtt
auth: usernamePassword
This exposes a plain TCP MQTT listener on port 1883, using username/password authentication.
- name: "CoAP Interface"
url: udp://0.0.0.0:5683/
protocol: coap
maxBlockSize: 512
idleTimePeriod: 120
A CoAP endpoint for constrained devices. No authentication defined (could be anonymous or managed elsewhere).
- name: "AMQP Interface"
url: tcp://:::5672/
protocol: amqp
sasl:
mechanism: "SCRAM-SHA-512"
identityProvider: system
map: "/{{virtualHostName}}"
AMQP interface using SASL authentication and optional virtual host mappings.
đ§ Device Types Supportedâ
Device Type | Connectivity Method | Protocols Used | Example Use Case |
---|---|---|---|
IoT Sensors (Low Power) | UDP | MQTT-SN, CoAP | Battery-powered GPS trackers, NMEA receivers |
Gateways / Edge Devices | TCP or UDP | MQTT, AMQP | Forwarding messages from local sensors |
Browsers / Web Clients | HTTPS (via REST API) | REST/WebSocket (UI) | Access admin dashboards, publish data |
LoRa Gateways | Radio + Backhaul (UDP) | LoRa | Long-range, low-bandwidth environmental monitors |
Enterprise Apps | TCP + TLS | AMQP, MQTT | Real-time messaging with secure encryption |
STOMP Clients | TCP or TLS | STOMP | Legacy messaging integration |
â Best Practicesâ
- Use TLS/SSL wherever possible for external-facing services (
ssl://
and secure keystores). - Use DTLS for securing UDP-based protocols like CoAP and MQTT-SN.
- Enable virtual hosts for tenant-aware routing (see
map: "/{{virtualHostName}}"
). - Use MQTT-SN or CoAP for lightweight embedded devices that can't handle TCP.
- Enable
discoverable: true
for dynamic service registration via mDNS (e.g. for LAN discovery). - Set protocol-specific limits such as
maxInFlightEvents
,eventQueueTimeout
, orLoRaMaxTransmissionRate
to manage resources efficiently.