Dela via


Kommunikation mellan MQTT-klienter och Web PubSub-klienter mellan protokoll

Ibland vill du ha MQTT-klienter och andra klienter som använder Azure Web PubSubs protokoll tillsammans i en hubb, vilket möjliggör kommunikation mellan protokoll. Det här dokumentet definierar hur sådan kommunikation fungerar.

Begrepp

Först ska vi klargöra begreppen i samband med kommunikation mellan protokoll.

  • MQTT-klienter: Klienter som använder MQTT-protokoll .
  • Web PubSub-klienter: Klienter som använder Web PubSubs egna protokoll med pub-/underfunktioner. Exempel är json.webpubsub.azure.v1, protobuf.webpubsub.azure.v1, json.reliable.webpubsub.azure.v1och protobuf.reliable.webpubsub.azure.v1. Du hittar en översikt över Web PubSubs klientprotokoll här.
  • Reliable Web PubSub-klienter: En delmängd av Web PubSub-klienter som använder Web PubSub tillförlitliga protokoll, särskilt json.reliable.webpubsub.azure.v1, och protobuf.reliable.webpubsub.azure.v1.

Konceptmappningar

Beteende för meddelanderoutning

Från Översikt: MQTT i Azure Web PubSub Service får vi lära oss att gå med i en grupp i Web PubSubs protokoll fungerar på samma sätt som att prenumerera på samma namngivna ämne i MQTT. På samma sätt innebär sändning till en grupp att publicera till samma namngivna ämne. Det innebär att om en klient som använder Web PubSub-protokoll ansluter till gruppen afår den meddelanden från MQTT-klienter som skickar till ämnet aoch vice versa.

Konvertering av meddelandeinnehållstyp

I Web PubSub-protokoll finns det fyra typer av meddelandedata: Text, Binär, JSON och Protobuf.

I MQTT-protokoll finns det inget fält som anger meddelandeinnehållstypen i MQTT 3.1.1, men det finns ett strängfält för "innehållstyp" i MQTT 5.0.

Här är konverteringen mellan MQTT-fältet "innehållstyp" och datatypen Web PubSub-meddelande:

MQTT "innehållstyp" Web PubSub "meddelandedatatyp"
application/json JSON
text/plain Text
application/x-protobuf Protobuf
application/octet-stream Binära
Frånvarande eller MQTT 3.1.1 Binära

Konvertering av meddelandeinnehåll

För textbaserade Web PubSub-meddelandedatatyper, inklusive Text och Json, konverterar de till och från MQTT med UTF-8-kodning. För binärbaserade Web PubSub-meddelandedatatyper, inklusive Protobuf och Binary, förblir de exakt desamma i MQTT-meddelandeinnehållet.

Meddelandekvalitet för tjänstkonvertering (QoS)

I Web PubSub-protokoll bestäms QoS för ett meddelande som en klient tar emot av klientens protokoll. Tillförlitliga klienter får bara QoS 1-meddelanden, medan andra klienter bara får QoS 0-meddelanden.

I MQTT-protokoll bestäms QoS för ett meddelande som en klient tar emot av både meddelandet QoS (skicka QoS) och den tilldelade prenumerationen QoS, särskilt det mindre värdet för de två.

När meddelanden överförs mellan protokoll definieras den mottagna QoS enligt följande:

Meddelandesändare Meddelandemottagare QoS-utvärdering
MQTT-klienter Reliable Web PubSub-klienter QoS är alltid 1
MQTT-klienter Andra Web PubSub-klienter QoS är alltid 0
Web PubSub-klienter MQTT-klienter Min(1, beviljad prenumerations-QoS)

Andra

Meddelandeegenskaperna som anges här träder i kraft mellan protokoll. De andra gör det inte.

  • Förfallointervall för MQTT-meddelande