Compartilhar via


Comunicação entre protocolos entre clientes MQTT e clientes Web PubSub

Às vezes, você gostaria de ter clientes MQTT e outros clientes usando os protocolos do Azure Web PubSub juntos em um hub, permitindo a comunicação entre protocolos. Este documento define como funciona essa comunicação.

Conceitos

Primeiro, vamos esclarecer os conceitos no contexto da comunicação entre protocolos.

  • Clientes MQTT: Clientes que usam protocolos MQTT .
  • Clientes do Web PubSub: clientes que usam os próprios protocolos do Web PubSub com recursos do pub/sub. Os exemplos incluem json.webpubsub.azure.v1, protobuf.webpubsub.azure.v1, json.reliable.webpubsub.azure.v1 e protobuf.reliable.webpubsub.azure.v1. Você pode encontrar uma visão geral dos protocolos de cliente do Web PubSub aqui.
  • Clientes confiáveis do Web PubSub: um subconjunto de clientes do Web PubSub que usam protocolos confiáveis do Web PubSub, especificamente json.reliable.webpubsub.azure.v1, e protobuf.reliable.webpubsub.azure.v1.

Mapeamentos de conceito

Comportamento de roteamento de mensagens

Na Visão geral: MQTT no Serviço Web PubSub do Azure, aprendemos que ingressar em um grupo nos protocolos do Web PubSub funciona da mesma forma que assinar o mesmo tópico nomeado no MQTT. Da mesma forma, enviar para um grupo significa publicar no mesmo tópico nomeado. Isso significa que se um cliente que usa protocolos Web PubSub ingressar no grupo a, ele receberá mensagens de clientes MQTT enviando para o tópico ae vice-versa.

Conversão de tipo de conteúdo de mensagem

Nos protocolos Web PubSub, há quatro tipos de dados de mensagem: Texto, Binário, JSON e Protobuf.

Nos protocolos MQTT, não há campo para indicar o tipo de conteúdo da mensagem no MQTT 3.1.1, mas há um campo de "tipo de conteúdo" da string no MQTT 5.0.

Aqui está a conversão entre o campo "tipo de conteúdo" MQTT e o tipo de dados de mensagem Web PubSub:

MQTT "tipo de conteúdo" Web PubSub "tipo de dados de mensagem"
application/json JSON
text/plain Texto
application/x-protobuf Protobuf
application/octet-stream Binário
Ausente ou MQTT 3.1.1 Binário

Conversão de conteúdo de mensagem

Para tipos de dados de mensagem Web PubSub baseados em texto, incluindo Text e Json, eles são convertidos de e para MQTT pela codificação UTF-8. Para tipos de dados de mensagem do Web PubSub baseados em binário, incluindo Protobuf e Binary, eles permanecem exatamente os mesmos no conteúdo da mensagem MQTT.

Conversão de QoS (qualidade de serviço) de mensagem

Nos protocolos Web PubSub, a QoS de uma mensagem que um cliente recebe é determinada pelo protocolo do cliente. Clientes confiáveis obtêm apenas mensagens de QoS 1, enquanto outros clientes obtêm apenas mensagens de QoS 0.

Nos protocolos MQTT, a QoS de uma mensagem que um cliente recebe é determinada pela QoS da mensagem (QoS de envio) e pela QoS de assinatura concedida, especificamente o menor valor das duas.

Quando as mensagens são transferidas entre protocolos, a QoS recebida é definida da seguinte maneira:

Remetente da mensagem Receptor de mensagens Avaliação de QoS
Clientes MQTT Clientes confiáveis do Web PubSub QoS é sempre 1
Clientes MQTT Outros clientes do Web PubSub QoS é sempre 0
Clientes Web PubSub Clientes MQTT Min(1, QoS de assinatura concedida)

Others

As propriedades de mensagem listadas aqui entram em vigor em todos os protocolos. Os outros não.

  • Intervalo de expiração da mensagem MQTT