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.v1
ochprotobuf.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
, ochprotobuf.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 a
får den meddelanden från MQTT-klienter som skickar till ämnet a
och 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