Sdílet prostřednictvím


Rozšíření CloudEvents pro naslouchací proces událostí Azure Web PubSub s protokolem AMQP

Služba Azure Web PubSub popisuje události klienta jako CloudEvents. CloudEvents je specifikace pro popis dat událostí v běžných formátech pro zajištění interoperability napříč službami, platformami a systémy.

Naslouchací procesy událostí služby naslouchají klientským událostem. Event Hubs je aktuálně jediným podporovaným koncovým bodem naslouchacího procesu událostí, jehož primárním protokolem je AMQP (Advanced Message Queueing Protocol). Služba Web PubSub používá vazbu protokolu AMQP CloudEvents k mapování CloudEvents na zprávy AMQP.

Data odesílaná ze služby na server jsou vždy ve formátu CloudEvents binary .

Rozšíření atributů Web PubSub CloudEvents

Toto rozšíření definuje atributy používané web pubSub pro každou událost, kterou vytvoří.

Následující tabulka obsahuje atributy mapování na standardní část vlastností zprávy AMQP.

Název Popis Příklad
content-type Typ MIME RFC-2046 pro text zprávy application/json
message-id Jedinečně definuje zprávu ve službě Web PubSub ve formátu {connection-id}/{celé číslo vygenerované službou}. 0bd83792-2a0c-48d3-9fbd-df63aa2ed9db/1

Následující tabulka obsahuje všechny atributy CloudEvents mapování na oddíl vlastností aplikace zprávy AMQP. Každý název atributu má předponu cloudEvents:.

Název Popis Příklad
specversion Verze specifikace událostí cloudu je vždy 1.0. 1.0
source Označuje centrum a ID připojení, ze kterého událost pochází, ve formátu /hubs/{hub}/client/{connectionId}. /hubs/chat/client/0bd83792-2a0c-48d3-9fbd-df63aa2ed9db
id Celé číslo vygenerované službou, jedinečné v událostech ze stejného připojení klienta 0
awpsversion Verze specifikace Azure Web PubSub událostí cloudu je vždy 1.0. 1.0
hub Název centra, ze kterého událost pochází chat
eventname Název události Připojen
type Typ události azure.webpubsub.sys.connect
connectionid ID připojení klienta 0bd83792-2a0c-48d3-9fbd-df63aa2ed9db
time Čas odeslání události ve formátu "rrrr-MM-ddTHH:mm:ssZ" 2021-01-01T00:00:00Z
userid* ID uživatele user1
subprotocol* Název dílčího souhrnu json.webpubsub.azure.v1
connectionstate* Definuje stav připojení. Hodnotu v hlavičce odpovědi obslužných rutin událostí můžete resetovat. Další informace o stavu připojení najdete v tématu Atributy Web PubSub CloudEvents. anystring

Znak *, který následuje za názvem atributu, označuje, že atribut je k dispozici pouze v případech, kdy hodnota není null nebo prázdná.

Události

Tato část ukazuje text zprávy AMQP s hodnotami atributů, které závisí na konkrétním typu události klienta. Hodnoty atributů, které nezávisí na typu události klienta, jsou vynechány.

Systémová connected událost

  • content-type: application/json
  • cloudEvents:type: azure.webpubsub.sys.connected
  • cloudEvents:eventname: connected

Text zprávy je vždy prázdný JSON.

{}

Systémová disconnected událost

  • content-type: application/json
  • cloudEvents:type: azure.webpubsub.sys.disconnected
  • cloudEvents:eventname: disconnected

Text zprávy obsahuje důvod, proč se klient odpojil.

{"reason":"{Reason}"}

Uživatelské události message pro jednoduché klienty WebSocket

  • content-type: application/octet-stream pro binární rámec; text/plain pro textový rámec;
  • cloudEvents:type: azure.webpubsub.user.message

Text zprávy je to, co klient odesílá.

Vlastní událost {custom_event} uživatele pro klienty PubSub WebSocket

  • content-type: application/octet-stream pro binární rámec; application/json pro rámec JSON; text/plain pro textový rámec; application/x-protobuf pro rámec Protobuf;
  • cloudEvents:type: azure.webpubsub.user.<event_name>

Následující případy ukazují, jak odesílat události s různými datovými typy obsahu a přijatými těly zpráv AMQP.

Případ 1: Odeslání události s textovými daty:

{
    "type": "event",
    "event": "<event_name>",
    "dataType": "text",
    "data": "text data"
}

Přijatý text zprávy AMQP:

text data

Případ 2: Odeslání události s daty JSON:

{
    "type": "event",
    "event": "<event_name>",
    "dataType": "json",
    "data": {
        "hello": "world"
     }
}

Přijatý text zprávy AMQP:

{
    "hello": "world"
}

Případ 3: Odeslání události s binárními daty:

{
    "type": "event",
    "event": "<event_name>",
    "dataType": "binary",
    "data": "aGVsbG8gd29ybGQ=" // base64 encoded binary
}

Přijatý text zprávy AMQP:

<binary data>