Il MQTT Il protocollo MQTT è un protocollo a livello di applicazione. Il protocollo MQTT è stato progettato per la comunicazione con un gran numero di sensori remoti e dispositivi di controllo dotati di potenza di calcolo limitata e operanti su reti a bassa larghezza di banda e inaffidabili. Presenta le seguenti caratteristiche principali:
● Utilizzare il modello di messaggistica “publish/subscribe” per consentire la pubblicazione di messaggi da uno a molti e separare le applicazioni;
● Trasmissione di messaggi con contenuto del payload mascherato;
● Utilizzare il protocollo TCP/IP per garantire la connettività di rete;
● Esistono tre tipi di qualità del servizio di pubblicazione dei messaggi:
“Al massimo una volta”: la pubblicazione dei messaggi dipende interamente dalla rete TCP/IP sottostante. È possibile che si verifichino perdite o duplicazioni dei messaggi. Questo livello può essere utilizzato in situazioni in cui, per i dati dei sensori ambientali, non è rilevante la perdita di un record di lettura, poiché ne verrà inviato un secondo a breve.
“Almeno una volta” garantisce che il messaggio venga recapitato, ma potrebbero verificarsi duplicazioni del messaggio.
“L'opzione ”Solo una volta” garantisce che il messaggio venga recapitato una sola volta. Questo livello può essere utilizzato in situazioni in cui la duplicazione o la perdita dei messaggi potrebbero causare risultati errati in un sistema di fatturazione.

Socket è un'interfaccia incapsulata per la suite di protocolli TCP/IP, e tramite Socket è possibile gestire connessioni TCP. Le connessioni Socket possono specificare diversi protocolli del livello di trasporto, ovvero TCP o UDP; pertanto, quando si utilizza il protocollo TCP per stabilire una connessione, la connessione Socket viene considerata una connessione TCP.
WebSocket si colloca a livello di applicazione, lo stesso livello dell'HTTP, e si basa sul protocollo TCP. La differenza tra WebSocket e HTTP consiste nel fatto che WebSocket è una comunicazione full-duplex, ovvero il server e il client possono scambiarsi messaggi contemporaneamente.


