Escolha um protocolo de comunicação de dispositivo

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

Nota

O Hub IoT tem suporte limitado a recursos para MQTT. Se sua solução precisar de suporte a MQTT v3.1.1 ou v5, recomendamos o suporte a MQTT na Grade de Eventos do Azure. Para obter mais informações, consulte Comparar o suporte MQTT no Hub IoT e na Grade de Eventos.

Para obter informações sobre como esses protocolos oferecem suporte a recursos específicos do Hub IoT, consulte Diretrizes de comunicações de dispositivo para nuvem e Diretrizes de comunicação de nuvem para dispositivo.

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

Protocolo Quando deve escolher este protocolo
MQTT
MQTT através de WebSockets
Use em todos os dispositivos que não exigem conexão com vários dispositivos, cada um com suas próprias credenciais por dispositivo, na mesma conexão TLS.
AMQP
AMQP através de WebSockets
Use gateways em campo e na nuvem para aproveitar a multiplexação de conexão entre dispositivos.
HTTPS Use para dispositivos que não suportam outros protocolos.

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

  • Padrão de nuvem para dispositivo. O HTTPS não tem uma maneira eficiente de implementar o push do servidor. Como tal, quando você estiver usando HTTPS, os dispositivos pesquisam o Hub IoT em busca de mensagens da nuvem para o dispositivo. Essa abordagem é ineficiente para o dispositivo e para o Hub IoT. De acordo com as diretrizes HTTPS atuais, cada dispositivo deve pesquisar mensagens a cada 25 minutos ou mais. A emissão de mais HTTPS gera resultados no Hub IoT, limitando as solicitações. O MQTT e o AMQP suportam o push do servidor ao receber mensagens da nuvem para o dispositivo. Eles permitem envios imediatos de mensagens do Hub IoT para o dispositivo. Se a latência de entrega for uma preocupação, MQTT ou AMQP são os melhores protocolos a serem usados. Para dispositivos raramente conectados, o HTTPS também funciona.

  • Gateways de campo. MQTT e HTTPS suportam apenas uma única identidade de dispositivo (ID do dispositivo mais credenciais) por conexão TLS. Por esse motivo, esses protocolos não são suportados para cenários de gateway de campo que exigem mensagens de multiplexação, usando várias identidades de dispositivo, em uma única conexão ou em um pool de conexões upstream com o Hub IoT. Esses gateways podem usar um protocolo que suporta várias identidades de dispositivo por conexão, como AMQP, para seu tráfego upstream.

  • Dispositivos com poucos recursos. 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 de RAM), estes protocolos podem ser a única implementação de protocolo disponível.

  • Travessia de rede. O protocolo AMQP padrão usa a porta 5671 e o MQTT escuta na porta 8883. O uso dessas portas pode causar problemas em redes fechadas para protocolos não-HTTPS. Use 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 úteis mais compactas do que HTTPS.

Aviso

Ao usar HTTPS, cada dispositivo deve pesquisar mensagens da nuvem para o dispositivo no máximo uma vez a cada 25 minutos. No desenvolvimento, cada dispositivo pode sondar com mais frequência, se desejado.

Importante

A seguinte funcionalidade para dispositivos que usam a autenticação de autoridade de certificação (CA) X.509 ainda não está disponível em geral e o modo de visualização deve ser habilitado:

  • HTTPS, MQTT sobre WebSockets e AMQP sobre protocolos WebSockets.
  • Upload de arquivos (todos os protocolos).

Esses recursos estão geralmente disponíveis em dispositivos que usam autenticação de impressão digital X.509. Para saber mais sobre a autenticação X.509 com o Hub IoT, consulte Certificados X.509 suportados.

Números de porta

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

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

O endereço IP de um hub IoT está sujeito a alterações sem aviso prévio. Para saber como atenuar os efeitos das alterações de endereço IP do hub IoT em sua solução e dispositivos IoT, consulte a seção Práticas recomendadas de endereços IP do Hub IoT.

Próximos passos

Para obter mais informações sobre como o Hub IoT implementa o protocolo MQTT, consulte Comunicar-se com seu hub IoT usando o protocolo MQTT.