Escolha um protocolo de comunicação do dispositivo

o Hub IoT permite que os dispositivos utilizem os seguintes protocolos para comunicações do lado do dispositivo –

  • MQTT
  • MQTT através de WebSockets
  • AMQP
  • AMQP através de WebSockets
  • HTTPS

Para obter informações sobre como estes protocolos suportam funcionalidades Hub IoT específicas, consulte a orientação de comunicações dispositivo-a-nuvem e a orientação de comunicações Cloud-to-device.

A tabela a seguir fornece as recomendações de alto nível para a sua escolha do protocolo:

Protocolo Quando deve escolher este protocolo
MQTT
MQTT sobre WebSocket
Utilize em todos os dispositivos que não necessitem de ligar vários dispositivos (cada um com as suas credenciais por dispositivo) sobre a mesma ligação TLS.
AMQP
AMQP sobre WebSocket
Utilize em gateways de campo e nuvem para aproveitar a ligação multiplexing através dos dispositivos.
HTTPS Utilize dispositivos que não suportem outros protocolos.

Considere os seguintes pontos quando escolher o seu protocolo para comunicações do lado do dispositivo:

  • Padrão nuvem-a-dispositivo. HTTPS não tem uma forma eficiente de implementar o impulso do servidor. Como tal, quando estiver a utilizar HTTPS, a pesquisa de dispositivos Hub IoT para mensagens cloud-to-device. Esta abordagem é ineficiente tanto para o dispositivo como para Hub IoT. De acordo com as atuais diretrizes HTTPS, cada dispositivo deve sondar mensagens a cada 25 minutos ou mais. A emissão de mais HTTPS resulta em Hub IoT a estrangular os pedidos. MQTT e AMQP suportam o impulso do servidor ao receber mensagens nuvem-dispositivo. Ativam os impulsos imediatos das mensagens da Hub IoT para o dispositivo. Se a latência da entrega for uma preocupação, MQTT ou AMQP são os melhores protocolos a utilizar. Para dispositivos raramente ligados, o HTTPS também funciona.

  • Portais de campo. MQTT e HTTPS suportam apenas uma identidade de dispositivo (ID mais credenciais) por ligação TLS. Por esta razão, estes protocolos não são suportados para cenários de gateway de campo que requerem mensagens multiplexing usando identidades de vários dispositivos através de um único ou um conjunto de ligações a montante para Hub IoT. Tais gateways podem usar um protocolo que suporta múltiplas identidades de dispositivos por ligação, como AMQP, para o seu tráfego a montante.

  • Dispositivos de baixo recurso. As bibliotecas MQTT e HTTPS têm uma pegada menor do que as bibliotecas AMQP. Como tal, se o dispositivo tiver recursos limitados (por exemplo, menos de 1-MB RAM), estes protocolos podem ser a única implementação do protocolo disponível.

  • Rede transversal. O protocolo padrão amQP utiliza a porta 5671, e mQTT escuta na porta 8883. A utilização destas portas pode causar problemas em redes fechadas a protocolos não-HTTPS. Utilize MQTT sobre WebSockets, AMQP sobre WebSockets ou HTTPS neste cenário.

  • Tamanho da carga útil. MQTT e AMQP são protocolos binários, que resultam em cargas mais compactas do que HTTPS.

Aviso

Ao utilizar HTTPS, cada dispositivo deve sondar mensagens nuvem-dispositivo não mais do que uma vez a cada 25 minutos. Em desenvolvimento, cada dispositivo pode sondar com mais frequência, se desejar.

Importante

A seguinte funcionalidade para dispositivos que utilizam a autenticação da Autoridade de Certificados X.509 (CA) ainda não está geralmente disponível, e o modo de pré-visualização deve ser ativado:

  • HTTPS, MQTT sobre WebSockets e AMQP sobre os protocolos WebSockets.
  • Uploads de ficheiros (todos os protocolos).

Geralmente está disponível em dispositivos que utilizam a autenticação de impressão digital X.509. Para saber mais sobre a autenticação X.509 com Hub IoT, consulte os certificados X.509 suportados.

Números portuários

Os dispositivos podem comunicar com Hub IoT em Azure utilizando vários protocolos. Normalmente, a escolha do protocolo é impulsionada pelos requisitos específicos da solução. A tabela que se segue lista as portas de saída que devem estar abertas para que um dispositivo possa utilizar um protocolo específico:

Protocolo Porta
MQTT 8883
MQTT através de WebSockets 443
AMQP 5671
AMQP através de WebSockets 443
HTTPS 443

Uma vez criado um hub IoT numa região de Azure, o hub IoT mantém o mesmo endereço IP para a vida daquele hub IoT. No entanto, se a Microsoft mudar o hub IoT para uma unidade de escala diferente para manter a qualidade de serviço, então é atribuído um novo endereço IP.

Passos seguintes

Para saber mais sobre como Hub IoT implementa o protocolo MQTT, consulte Comunicar com o seu hub IoT utilizando o protocolo MQTT.