Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der Azure Web PubSub-Dienst beschreibt Clientereignisse als CloudEvents. CloudEvents ist eine Spezifikation für die Beschreibung von Ereignisdaten in gängigen Formaten, um Interoperabilität über Dienste, Plattformen und Systeme hinweg bereitzustellen.
Die Ereignislistener des Diensts überwachen Clientereignisse. Event Hubs ist derzeit der einzige unterstützte Ereignislistenerendpunkt, dessen primäres Protokoll AMQP (Advanced Message Queueing Protocol) ist. Der Web PubSub-Dienst verwendet cloudEvents AMQP-Protokollbindung , um CloudEvents AMQP-Nachrichten zuzuordnen.
Die vom Dienst an den Server gesendeten Daten befinden sich immer im CloudEvents-Format binary .
Web PubSub CloudEvents-Attributerweiterung
Diese Erweiterung definiert die Attribute, die von Web PubSub für jedes erzeugte Ereignis verwendet werden.
Die folgende Tabelle enthält Attribute, die dem Standardeigenschaftenabschnitt einer AMQP-Nachricht zugeordnet sind.
| Name | Beschreibung | Beispiel |
|---|---|---|
content-type |
Der RFC-2046-MIME-Typ für den Nachrichtentext | Anwendung/json |
message-id |
Definiert eine Nachricht in einem Web PubSub-Dienst eindeutig im Format "{connection-id}/{an integer generated by service}". | 0bd83792-2a0c-48d3-9fbd-df63aa2ed9db/1 |
Die folgende Tabelle enthält alle CloudEvents-Attribute, die dem Abschnitt " Anwendungseigenschaften " einer AMQP-Nachricht zugeordnet sind. Jedem Attributnamen wird ein Präfix vorangestellt cloudEvents:.
| Name | Beschreibung | Beispiel |
|---|---|---|
specversion |
Spezifikationsversion von Cloudereignissen ist immer 1.0 | 1.0 |
source |
Gibt den Hub und die Verbindungs-ID an, von der das Ereignis stammt, im Format "/hubs/{hub}/client/{connectionId}" | /hubs/chat/client/0bd83792-2a0c-48d3-9fbd-df63aa2ed9db |
id |
Eine ganze Zahl, die vom Dienst generiert wird, eindeutig in den Ereignissen aus derselben Clientverbindung | 1 |
awpsversion |
Azure Web PubSub-Spezifikationsversion von Cloudereignissen ist immer 1.0. | 1.0 |
hub |
Der Hubname, von dem das Ereignis stammt | Chat |
eventname |
Der Name des Ereignisses | verbunden |
type |
Der Ereignistyp | azure.webpubsub.sys.connect |
connectionid |
Die ID der Clientverbindung | 0bd83792-2a0c-48d3-9fbd-df63aa2ed9db |
time |
Der Zeitpunkt, zu dem der Dienst das Ereignis sendet, im Format "yyyy-MM-ddTHH:mm:ssZ" | 2021-01-01T00:00:00Z |
userid* |
Die ID des Benutzers | user1 |
subprotocol* |
Der Name des Unterprotocols | json.webpubsub.azure.v1 |
connectionstate* |
Definiert den Status für die Verbindung. Sie können den Wert im Antwortheader von Ereignishandlern zurücksetzen. Weitere Informationen zum Verbindungsstatus finden Sie unter Web PubSub CloudEvents-Attribute. | anystring |
Der Attributname "*" gibt an, dass das Attribut nur vorhanden ist, wenn der Wert nicht null oder leer ist.
Ereignisse
In diesem Abschnitt wird der AMQP-Nachrichtentext mit den Attributwerten angezeigt, die von einem bestimmten Clientereignistyp abhängen. Attributwerte, die nicht von einem Clientereignistyp abhängen, werden weggelassen.
- Systemereignis
connect: Von Ereignislistenern nicht unterstützt. -
Systemereignis
connected -
Systemereignis
disconnected -
Benutzerereignisse
messagefür die einfachen WebSocket-Clients -
Benutzerdefiniertes Benutzerereignis
{custom_event}für PubSub WebSocket-Clients
Systemereignis connected
-
content-type:application/json -
cloudEvents:type:azure.webpubsub.sys.connected -
cloudEvents:eventname:connected
Der Nachrichtentext ist immer leer JSON.
{}
Systemereignis disconnected
-
content-type:application/json -
cloudEvents:type:azure.webpubsub.sys.disconnected -
cloudEvents:eventname:disconnected
Der Nachrichtentext enthält den Grund, warum der Client die Verbindung getrennt hat.
{"reason":"{Reason}"}
Benutzerereignisse message für die einfachen WebSocket-Clients
-
content-type:application/octet-streamfür binären Rahmen;text/plainfür Textrahmen; -
cloudEvents:type:azure.webpubsub.user.message
Der Nachrichtentext sendet den Client.
Benutzerdefiniertes Benutzerereignis {custom_event} für PubSub WebSocket-Clients
-
content-type:application/octet-streamfür binären Frame;application/jsonfür JSON-Frame;text/plainfür Textrahmen;application/x-protobuffür Protobuf-Frame; -
cloudEvents:type:azure.webpubsub.user.<event_name>
In den folgenden Fällen wird gezeigt, wie Ereignisse mit unterschiedlichen Datentypen und den empfangenen AMQP-Nachrichtentexten gesendet werden.
Fall 1: Senden eines Ereignisses mit Textdaten:
{
"type": "event",
"event": "<event_name>",
"dataType": "text",
"data": "text data"
}
Empfangener AMQP-Nachrichtentext:
text data
Fall 2: Senden eines Ereignisses mit JSON-Daten:
{
"type": "event",
"event": "<event_name>",
"dataType": "json",
"data": {
"hello": "world"
}
}
Empfangener AMQP-Nachrichtentext:
{
"hello": "world"
}
Fall 3: Senden eines Ereignisses mit Binärdaten:
{
"type": "event",
"event": "<event_name>",
"dataType": "binary",
"data": "aGVsbG8gd29ybGQ=" // base64 encoded binary
}
Empfangener AMQP-Nachrichtentext:
<binary data>