Partilhar via


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 fornece suporte limitado a recursos para MQTT. Se sua solução precisar de suporte a MQTT v3.1.1 ou v5, consulte Visão geral do recurso de agente MQTT na Grade de Eventos do Azure. Para obter mais informações, consulte a seção Comparar suporte MQTT no Hub IoT e na Grade de Eventos de Comunicar com um hub IoT usando o protocolo MQTT.

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. Issuing more HTTPS receives results in IoT Hub throttling the requests. 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.

  • Field gateways. MQTT e HTTPS suportam apenas uma única identidade de dispositivo (ID do dispositivo mais credenciais) por conexão TLS. For this reason, these protocols aren't supported for field gateway scenarios that require multiplexing messages, using multiple device identities, across either a single connection or a pool of upstream connections to IoT Hub. 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 fornece recursos limitados (por exemplo, menos de 1 MB de RAM), esses protocolos podem ser a única implementação de protocolo disponível.

  • Trânsito na 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.

  • Payload size. MQTT e AMQP são protocolos binários, que resultam em cargas úteis mais compactas do que HTTPS.

Aviso

Quando os dispositivos usam o protocolo 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.

Important

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 estar habilitado:

  • HTTPS, MQTT over WebSockets, and AMQP over WebSockets protocols.
  • 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.

Números de porta

Os dispositivos podem se comunicar com o Hub IoT no Azure usando vários protocolos. Normalmente, os requisitos específicos da solução determinam a escolha do protocolo. 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 Porto
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 um hub IoT usando o protocolo MQTT.