Informazioni di riferimento: scegliere un protocollo di comunicazione

Lo hub IoT consente ai dispositivi di usare i seguenti protocolli per le comunicazioni lato dispositivo:

  • MQTT
  • MQTT su WebSocket
  • AMQP
  • AMQP su WebSockets
  • HTTP

Per informazioni sulle modalità di supporto dei protocolli alle funzionalità specifiche dell'hub IoT, vedere Indicazioni sulle comunicazioni da dispositivo a cloud e Indicazioni sulle comunicazioni da cloud a dispositivo.

Nella tabella seguente vengono fornite le indicazioni generali per la scelta del protocollo:

Protocol Quando scegliere questo protocollo
MQTT
MQTT su WebSocket
Viene usato su tutti i dispositivi che non richiedono la connessione di più dispositivi, ognuno con le sue credenziali per dispositivo, sulla stessa connessione TLS.
AMQP
AMQP su WebSocket
Usare in gateway cloud e sul campo per sfruttare il vantaggio della connessione multiplexing tra dispositivi.
HTTP Usare per i dispositivi che non supportano altri protocolli.

Nella scelta del protocollo per le comunicazioni sul lato dispositivo occorre prendere in considerazione quanto segue:

  • Modello da cloud a dispositivo. HTTP non offre un modo efficiente per implementare il push del server. Di conseguenza, quando si usa HTTP i dispositivi eseguono il polling dell'hub IoT per i messaggi da cloud a dispositivo. Questo approccio è inefficiente sia per il dispositivo che per l'hub IoT. In base alle attuali linee guida di HTTP, ogni dispositivo dovrebbe eseguire il polling almeno ogni 25 minuti. MQTT e AMQP supportano il push del server quando si ricevono messaggi da cloud a dispositivo, consentendo il push immediato dei messaggi dall'hub IoT al dispositivo. Se la latenza di recapito rappresenta un problema, è consigliabile usare il protocollo MQTT o AMQP. Per i dispositivi che si connettono raramente, è possibile usare anche il protocollo HTTP.
  • Gateway sul campo. Quando si usano i protocolli MQTT e HTTP, non è possibile connettere più dispositivi, ognuno con le sue credenziali per dispositivo, con la stessa connessione TLS. Questi protocolli non sono ottimali per scenari di gateway sul campo che richiedono una connessione TLS tra il gateway sul campo e l'hub IoT per ogni dispositivo connesso.
  • Dispositivi con risorse ridotte. Le raccolte di MQTT e HTTP hanno un'impronta inferiore rispetto alle raccolte di AMQP. Di conseguenza, se il dispositivo ha risorse limitate, ad esempio meno di 1 MB di RAM, questi protocolli potrebbero costituire l'unica implementazione disponibile.
  • Attraversamento rete. Il protocollo standard AMQP usa la porta 5671, mentre il protocollo MQTT è in ascolto sulla porta 8883. L'uso di queste porte può provocare problemi nelle reti chiuse ai protocolli non HTTP. In un simile scenario, usare MQTT su WebSockets, AMQP su WebSockets o HTTP.
  • Dimensioni del payload. MQTT e AMQP sono protocolli binari, quindi hanno payload più compatti rispetto a HTTP.

Avviso

Quando si usa HTTP, ogni dispositivo deve eseguire il polling dei messaggi da cloud a dispositivo ogni 25 minuti o più. In fase di sviluppo è comunque accettabile eseguire il polling con una frequenza maggiore di 25 minuti.

Numeri di porta

I dispositivi possono comunicare con l'hub IoT in Azure tramite una serie di protocolli. In genere, la scelta del protocollo è determinata dai requisiti specifici della soluzione. Nella tabella seguente sono elencate le porte in uscita che devono essere aperte affinché un dispositivo possa utilizzare un protocollo specifico:

Protocol Porta
MQTT 8883
MQTT su WebSocket 443
AMQP 5671
AMQP su WebSockets 443
HTTP 443

Dopo aver creato un hub IoT in un'area di Azure, l'hub IoT manterrà lo stesso indirizzo IP per la durata di tale hub IoT. Per mantenere tuttavia la qualità del servizio, se Microsoft sposta l'hub IoT su un'unità di scala diversa, verrà assegnato ad esso un nuovo indirizzo IP.

Passaggi successivi

Per altre informazioni sull'implementazione del protocollo MQTT da parte dell'hub IoT, vedere Comunicare con l'hub IoT tramite il protocollo MQTT.