Informazioni di riferimento: scegliere un protocollo di comunicazioneReference - choose a communication protocol

L'hub IoT consente ai dispositivi di usare i protocolli seguenti per le comunicazioni lato dispositivo:IoT Hub allows devices to use the following protocols for device-side communications:

  • MQTTMQTT
  • MQTT su WebSocketMQTT over WebSockets
  • AMQPAMQP
  • AMQP su WebSocketsAMQP over WebSockets
  • HTTPSHTTPS

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.For information about how these protocols support specific IoT Hub features, see Device-to-cloud communications guidance and Cloud-to-device communications guidance.

Nella tabella seguente vengono fornite le indicazioni generali per la scelta del protocollo:The following table provides the high-level recommendations for your choice of protocol:

ProtocolProtocol Quando scegliere questo protocolloWhen you should choose this protocol
MQTTMQTT
MQTT su WebSocketMQTT over 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.Use on all devices that do not require to connect multiple devices (each with its own per-device credentials) over the same TLS connection.
AMQPAMQP
AMQP su WebSocketAMQP over WebSocket
Usare in gateway cloud e sul campo per sfruttare il vantaggio della connessione multiplexing tra dispositivi.Use on field and cloud gateways to take advantage of connection multiplexing across devices.
HTTPSHTTPS Usare per i dispositivi che non supportano altri protocolli.Use for devices that cannot support other protocols.

Nella scelta del protocollo per le comunicazioni sul lato dispositivo occorre prendere in considerazione quanto segue:Consider the following points when you choose your protocol for device-side communications:

  • Modello da cloud a dispositivo.Cloud-to-device pattern. HTTPS non offre un modo efficiente per implementare il push del server.HTTPS does not have an efficient way to implement server push. Di conseguenza, quando si usa HTTPS i dispositivi eseguono il polling dell'hub IoT per i messaggi da cloud a dispositivo.As such, when you are using HTTPS, devices poll IoT Hub for cloud-to-device messages. Questo approccio è inefficiente sia per il dispositivo che per l'hub IoT.This approach is inefficient for both the device and IoT Hub. In base alle attuali linee guida di HTTPS, ogni dispositivo dovrebbe eseguire il polling almeno ogni 25 minuti.Under current HTTPS guidelines, each device should poll for messages every 25 minutes or more. MQTT e AMQP supportano il push del server quando si ricevono messaggi da cloud a dispositivo,MQTT and AMQP support server push when receiving cloud-to-device messages. consentendo il push immediato dei messaggi dall'hub IoT al dispositivo.They enable immediate pushes of messages from IoT Hub to the device. Se la latenza di recapito rappresenta un problema, è consigliabile usare il protocollo MQTT o AMQP.If delivery latency is a concern, MQTT or AMQP are the best protocols to use. Per i dispositivi che si connettono raramente, è possibile usare anche il protocollo HTTPS.For rarely connected devices, HTTPS works as well.
  • Gateway sul campo.Field gateways. Quando si usano i protocolli MQTT e HTTPS, non è possibile connettere più dispositivi, ognuno con le sue credenziali per dispositivo, con la stessa connessione TLS.When using MQTT and HTTPS, you cannot connect multiple devices (each with its own per-device credentials) using the same TLS connection. 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.For Field gateway scenarios that require one TLS connection between the field gateway and IoT Hub for each connected device, these protocols are suboptimal.
  • Dispositivi con risorse ridotte.Low resource devices. Le raccolte di MQTT e HTTPS hanno un'impronta inferiore rispetto alle raccolte di AMQP.The MQTT and HTTPS libraries have a smaller footprint than the AMQP libraries. Di conseguenza, se il dispositivo ha risorse limitate, ad esempio meno di 1 MB di RAM, questi protocolli potrebbero costituire l'unica implementazione disponibile.As such, if the device has limited resources (for example, less than 1 MB RAM), these protocols might be the only protocol implementation available.
  • Attraversamento rete.Network traversal. Il protocollo standard AMQP usa la porta 5671, mentre il protocollo MQTT è in ascolto sulla porta 8883.The standard AMQP protocol uses port 5671, and MQTT listens on port 8883. L'uso di queste porte può provocare problemi nelle reti chiuse ai protocolli non HTTPS.USe of these ports could cause problems in networks that are closed to non-HTTPS protocols. In un simile scenario, usare MQTT su WebSockets, AMQP su WebSockets o HTTPS.Use MQTT over WebSockets, AMQP over WebSockets, or HTTPS in this scenario.
  • Dimensioni del payload.Payload size. MQTT e AMQP sono protocolli binari, quindi hanno payload più compatti rispetto a HTTPS.MQTT and AMQP are binary protocols, which result in more compact payloads than HTTPS.

Avviso

Quando si usa HTTPS, ogni dispositivo deve eseguire il polling dei messaggi da cloud a dispositivo ogni 25 minuti o più.When using HTTPS, each device should poll for cloud-to-device messages every 25 minutes or more. In fase di sviluppo è comunque accettabile eseguire il polling con una frequenza maggiore di 25 minuti.However, during development, it is acceptable to poll more frequently than every 25 minutes.

Numeri di portaPort numbers

I dispositivi possono comunicare con l'hub IoT in Azure tramite una serie di protocolli.Devices can communicate with IoT Hub in Azure using various protocols. In genere, la scelta del protocollo è determinata dai requisiti specifici della soluzione.Typically, the choice of protocol is driven by the specific requirements of the solution. Nella tabella seguente sono elencate le porte in uscita che devono essere aperte affinché un dispositivo possa utilizzare un protocollo specifico:The following table lists the outbound ports that must be open for a device to be able to use a specific protocol:

ProtocolProtocol PortaPort
MQTTMQTT 88838883
MQTT su WebSocketMQTT over WebSockets 443443
AMQPAMQP 56715671
AMQP su WebSocketsAMQP over WebSockets 443443
HTTPSHTTPS 443443

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.Once you have created an IoT hub in an Azure region, the IoT hub keeps the same IP address for the lifetime of that IoT hub. 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.However, if Microsoft moves the IoT hub to a different scale unit to maintain quality of service, then it is assigned a new IP address.

Passaggi successiviNext steps

Per altre informazioni sull'implementazione del protocollo MQTT da parte dell'hub IoT, vedere Comunicare con l'hub IoT tramite il protocollo MQTT.To learn more about how IoT Hub implements the MQTT protocol, see Communicate with your IoT hub using the MQTT protocol.