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 –
- MQTT
- MQTT através de WebSockets
- Protocolo AMQP (Advanced Message Queuing Protocol)
- AMQP através de WebSockets
- HTTPS
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.