Megosztás a következőn keresztül:


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 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>