Vai al contenuto principale
Protocollo MQTT

Sviluppo MQTT

MQTT è il protocollo standard per l'IoT. Leggero, efficiente e progettato per connessioni instabili. Implementiamo architetture MQTT complete: broker gestiti o self-hosted, livelli QoS, sicurezza TLS, progettazione dei topic e bridging edge-to-cloud.

Il protocollo di riferimento per l'IoT

MQTT: comunicazione efficiente tra dispositivi e cloud

MQTT (Message Queuing Telemetry Transport) è un protocollo di messaggistica pub/sub progettato per ambienti con banda limitata, alta latenza o connessioni instabili. Un messaggio MQTT può avere appena 2 byte di overhead, contro le centinaia di byte di una richiesta HTTP. Questo lo rende il protocollo ideale per dispositivi IoT a batteria con connettività limitata.

Il modello pub/sub di MQTT disaccoppia completamente i produttori di dati (i dispositivi) dai consumatori (applicazioni, dashboard, sistemi di allerta). Un dispositivo pubblica i dati su un topic; qualsiasi numero di subscriber può ricevere quei dati senza che il dispositivo sappia chi li consuma. Questo permette di aggiungere nuovi consumatori (una nuova dashboard, un sistema di allerta, una pipeline ML) senza modificare il firmware dei dispositivi.

In Soamee implementiamo MQTT come protocollo principale nei nostri progetti IoT. Lo usiamo nella piattaforma Spherag per la trasmissione dei dati dei sensori agricoli e in numerosi progetti di IoT industriale per il monitoraggio e il controllo dei dispositivi.

Lavoriamo con broker gestiti come AWS IoT Core e broker self-hosted come EMQX e Mosquitto. La scelta dipende dai requisiti di scala, costo, controllo e compliance di ogni progetto.

2 byte

Overhead minimo

TLS/mTLS

Sicurezza nativa

3 QoS

Livelli di garanzia

LWT

Rilevamento disconnessioni

Livelli QoS

Quality of Service su misura per ogni caso d'uso

MQTT offre tre livelli di QoS che bilanciano affidabilità ed efficienza. Scegliere il livello giusto è fondamentale per ottimizzare le prestazioni.

QoS 0: al massimo una volta

Fire and forget: il messaggio viene inviato una sola volta senza conferma. Il più veloce e leggero. Ideale per telemetria ad alta frequenza dove perdere un dato occasionale non è critico (temperatura ogni secondo, posizione GPS). Overhead minimo su rete e batteria.

QoS 1: almeno una volta

Consegna garantita con possibili duplicati. Il mittente ritrasmette il messaggio finché non riceve conferma (PUBACK). Il livello più usato nell'IoT industriale. Ideale per dati di sensori dove la perdita è inaccettabile ma un duplicato è gestibile (allerte, letture di consumo).

QoS 2: esattamente una volta

Consegna garantita senza duplicati. Handshake in 4 passaggi che assicura che ogni messaggio venga ricevuto esattamente una volta. Maggiore overhead di rete e latenza. Riservato alle operazioni critiche dove un duplicato causerebbe problemi (comandi ad attuatori, transazioni, aggiornamenti firmware).

Capacità MQTT

Cosa implementiamo con MQTT

Sicurezza TLS/mTLS

Cifratura di tutte le comunicazioni MQTT con TLS 1.2/1.3. Autenticazione mutua (mTLS) con certificati X.509 per verificare l'identità sia del dispositivo sia del broker. Rotazione automatica dei certificati e revoca immediata dei dispositivi compromessi. Autorizzazione granulare a livello di topic che controlla quale dispositivo può pubblicare o sottoscrivere quali dati.

Setup e clustering dei broker

Distribuiamo e configuriamo broker MQTT in base ai requisiti del progetto. EMQX per grandi scale (milioni di connessioni) con clustering nativo. Mosquitto per progetti più piccoli o gateway edge. AWS IoT Core come servizio gestito. Configurazione di bridge tra broker per architetture edge-to-cloud con sincronizzazione dei dati.

Progettazione dei topic

Progettazione della gerarchia di topic MQTT adattata al dominio del progetto. Pattern come {org}/{site}/{device-type}/{device-id}/{data-type} che abilitano sottoscrizioni con wildcard (# e +) per un consumo flessibile dei dati. Shared subscription per distribuire il carico su più consumatori.

Bridge edge-to-cloud

Architettura a bridge tra broker edge locale (Mosquitto sul gateway) e broker cloud (AWS IoT Core, EMQX Cloud). I dati vengono pubblicati localmente a bassa latenza, bufferizzati durante le disconnessioni e sincronizzati con il cloud quando la connettività è disponibile. Store-and-forward per garantire zero perdita di dati.

Devi implementare MQTT nel tuo progetto IoT?

Consulenza gratuita →
Ecosistema MQTT

Broker e strumenti che utilizziamo

AWS IoT Core EMQX Mosquitto HiveMQ MQTT.js Paho MQTT MQTT 5.0 MQTT 3.1.1 Node.js Python C/C++ ESP32 Raspberry Pi LoRaWAN Docker Kubernetes TLS 1.3 X.509 Grafana
Iniziamo

Implementa MQTT nel tuo progetto IoT

Ti aiutiamo a scegliere il broker giusto, progettare l'architettura dei topic e costruire la pipeline MQTT completa.

Prenota una call gratuita →