CloudEvents-bővítmény az Azure Web PubSub eseményfigyelőhöz AMQP protokollal
Az Azure Web PubSub Service az ügyféleseményeket CloudEventsként írja le. A CloudEvents a szolgáltatások, platformok és rendszerek közötti interoperabilitás biztosítása érdekében az eseményadatok közös formátumban történő leírására szolgál.
A szolgáltatás eseményfigyelői figyelik az ügyféleseményeket. Az Event Hubs jelenleg az egyetlen támogatott eseményfigyelő végpont, amelynek elsődleges protokollja az AMQP (Advanced Message Queueing Protocol). A Web PubSub szolgáltatás CloudEvents AMQP protokollkötést használ a CloudEvents AMQP-üzenetekhez való leképezéséhez.
A szolgáltatásból a kiszolgálóra küldött adatok mindig CloudEvents formátumúak binary
.
Web PubSub CloudEvents attribútumbővítmény
Ez a bővítmény határozza meg a Web PubSub által az általa létrehozott eseményekhez használt attribútumokat.
Az alábbi táblázat egy AMQP-üzenet szabványos tulajdonságok szakaszához rendelt attribútumokat tartalmaz.
Name | Leírás | Példa |
---|---|---|
content-type |
Az üzenet törzsének RFC-2046 MIME típusa | application/json |
message-id |
Egyedileg definiál egy üzenetet egy Web PubSub szolgáltatásban a következő formátumban: "{connection-id}/{a szolgáltatás által generált egész szám}" | 0bd83792-2a0c-48d3-9fbd-df63aaa2ed9db/1 |
Az alábbi táblázat az AMQP-üzenet alkalmazástulajdonságok szakaszához tartozó összes CloudEvents-attribútumot tartalmazza. Minden attribútumnév előtaggal cloudEvents:
rendelkezik.
Name | Leírás | Példa |
---|---|---|
specversion |
A felhőesemények specifikációs verziója mindig 1.0 | 1,0 |
source |
Azt a központot és kapcsolatazonosítót jelzi, ahonnan az esemény származik, "/hubs/{hub}/client/{connectionId}" formátumban | /hubs/chat/client/0bd83792-2a0c-48d3-9fbd-df63aa2ed9db |
id |
A szolgáltatás által létrehozott egész szám, amely egyedi az ugyanazon ügyfélkapcsolat eseményeiben | 1 |
awpsversion |
Felhőesemények Az Azure Web PubSub specifikációs verziója mindig 1.0 | 1,0 |
hub |
Az a központi név, amelyből az esemény származik | csevegés |
eventname |
Az esemény neve | Csatlakoztatott |
type |
Az esemény típusa | azure.webpubsub.sys.connect |
connectionid |
Az ügyfélkapcsolat azonosítója | 0bd83792-2a0c-48d3-9fbd-df63aaa2ed9db |
time |
Az az időpont, amikor a szolgáltatás elküldi az eseményt,"yyyy-MM-ddTHH:mm:ssZ" formátumban | 2021-01-01T00:00:00Z |
userid * |
A felhasználó azonosítója | felhasználó1 |
subprotocol * |
Az alprotocol neve | json.webpubsub.azure.v1 |
connectionstate * |
Meghatározza a kapcsolat állapotát. Az eseménykezelők válaszfejlécében alaphelyzetbe állíthatja az értéket. A kapcsolat állapotáról további információt a Web PubSub CloudEvents attribútumai című témakörben talál. | bármely vonás |
Az attribútum nevét követő "*" azt jelzi, hogy az attribútum csak akkor jelenik meg, ha az érték nem null vagy üres.
Events
Ez a szakasz az AMQP üzenettörzsét mutatja be egy adott ügyfélesemény-típustól függő attribútumértékekkel. Az ügyfélesemény-típustól nem függő attribútumértékek nem lesznek megadva.
- Rendszeresemény
connect
: Az eseményfigyelők nem támogatják. - Rendszeresemény
connected
- Rendszeresemény
disconnected
- Felhasználói események
message
az egyszerű WebSocket-ügyfelek számára - Egyéni felhasználói esemény
{custom_event}
PubSub WebSocket-ügyfelek számára
Rendszeresemény connected
content-type
:application/json
cloudEvents:type
:azure.webpubsub.sys.connected
cloudEvents:eventname
:connected
Az üzenet törzse mindig üres JSON.
{}
Rendszeresemény disconnected
content-type
:application/json
cloudEvents:type
:azure.webpubsub.sys.disconnected
cloudEvents:eventname
:disconnected
Az üzenet törzse tartalmazza az ügyfél kapcsolatának megszakadását.
{"reason":"{Reason}"}
Felhasználói események message
az egyszerű WebSocket-ügyfelek számára
content-type
:application/octet-stream
bináris kerethez;text/plain
szövegkerethez;cloudEvents:type
:azure.webpubsub.user.message
Az ügyfél által küldött üzenettörzs.
Egyéni felhasználói esemény {custom_event}
PubSub WebSocket-ügyfelek számára
content-type
:application/octet-stream
bináris kerethez;application/json
JSON-kerethez;text/plain
szövegkerethez;application/x-protobuf
Protobuf-kerethez;cloudEvents:type
:azure.webpubsub.user.<event_name>
Az alábbi esetek bemutatják, hogyan küldhet eseményeket különböző adattartalomtípusokkal és a fogadott AMQP-üzenettörzsekkel.
1. eset: esemény küldése szöveges adatokkal:
{
"type": "event",
"event": "<event_name>",
"dataType": "text",
"data": "text data"
}
Fogadott AMQP-üzenet törzse:
text data
2. eset: esemény küldése JSON-adatokkal:
{
"type": "event",
"event": "<event_name>",
"dataType": "json",
"data": {
"hello": "world"
}
}
Fogadott AMQP-üzenet törzse:
{
"hello": "world"
}
3. eset: esemény küldése bináris adatokkal:
{
"type": "event",
"event": "<event_name>",
"dataType": "binary",
"data": "aGVsbG8gd29ybGQ=" // base64 encoded binary
}
Fogadott AMQP-üzenet törzse:
<binary data>