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 zum Beschreiben von Ereignisdaten in gängigen Formaten, um die Interoperabilität zwischen Diensten, Plattformen und Systemen zu gewährleisten.
Die Ereignislistener des Diensts lauschen auf 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 die AMQP-Protokollbindung von CloudEvents, um AMQP-Nachrichten CloudEvents zuzuordnen.
Die vom Dienst an den Server gesendeten Daten haben immer das CloudEvents-Format binary.
Web PubSub CloudEvents-Attributerweiterung
Diese Erweiterung definiert Attribute, die vom Web PubSub-Dienst für jedes von ihm erzeugte Ereignis verwendet werden.
Die folgende Tabelle enthält Attribute, die dem Abschnitt Standardeigenschaften einer AMQP-Nachricht zugeordnet sind.
| Name | Beschreibung des Dataflows | Beispiel |
|---|---|---|
content-type |
Der MIME-Typ „RFC-2046“ für den Nachrichtentext | Anwendung/json |
message-id |
Definiert eindeutig eine Nachricht in einem Web PubSub-Dienst im Format „{Verbindungs-ID}/{vom Dienst generierte ganze Zahl}“. | 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 das Präfix cloudEvents: vorangestellt.
| Name | Beschreibung des Dataflows | Beispiel |
|---|---|---|
specversion |
Version der Spezifikation für Cloudereignisse, immer 1.0 | 1.0 |
source |
Gibt den Hub und die Verbindungs-ID, von denen das Ereignis stammt, im Format „/hubs/{Hub}/client/{Verbindungs-ID}“ an. | /hubs/chat/client/0bd83792-2a0c-48d3-9fbd-df63aa2ed9db |
id |
Eine vom Dienst generierte ganze Zahl, die in den Ereignissen der gleichen Clientverbindung eindeutig ist | 1 |
awpsversion |
Version der Azure Web PubSub-Spezifikation für Cloudereignisse, immer 1.0 | 1.0 |
hub |
Der Hubname, von dem das Ereignis stammt | Chat |
eventname |
Der Name des Ereignisses | connected |
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 gesendet hat, im Format „yyyy-MM-ddTHH:mm:ssZ“ | 2021-01-01T00:00:00Z |
userid* |
Die ID des Benutzers | user1 |
subprotocol* |
Der Name des Unterprotokolls | json.webpubsub.azure.v1 |
connectionstate* |
Legt den Status der Verbindung fest. Sie können den Wert im Antwortheader von Ereignishandlern zurücksetzen. Weitere Informationen zum Verbindungsstatus finden Sie unter Attribute. | anystring |
Das auf den Attributnamen folgende Sternchen (*) 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: Wird von Ereignislistenern nicht unterstützt. - System
connectedereignis - System
disconnectedereignis - Benutzerereignisse vom Typ
messagefür einfache WebSocket-Clients - Benutzerdefiniertes Ereignis
{custom_event}für PubSub WebSocket-Clients
Systemconnectedereignis
content-type:application/jsoncloudEvents:type:azure.webpubsub.sys.connectedcloudEvents:eventname:connected
Der Nachrichtentext ist immer leerer JSON-Code.
{}
Systemdisconnectedereignis
content-type:application/jsoncloudEvents:type:azure.webpubsub.sys.disconnectedcloudEvents:eventname:disconnected
Der Nachrichtentext enthält den Grund, warum die Verbindung mit dem Client getrennt wurde.
{"reason":"{Reason}"}
Benutzerereignisse vom Typ message für einfache WebSocket-Clients
content-type:application/octet-streamfür binären Frame;text/plainfür Textframe;cloudEvents:type:azure.webpubsub.user.message
Der Nachrichtentext besteht aus den vom Client gesendeten Informationen.
Benutzerdefiniertes Ereignis {custom_event} für PubSub WebSocket-Clients
content-type:application/octet-streamfür binären Frame;application/jsonfür JSON-Frame;text/plainfür Textframe;application/x-protobuffür Protobuf-FramecloudEvents:type:azure.webpubsub.user.<event_name>
Die folgenden Fälle zeigen, wie Ereignisse mit unterschiedlichen Dateninhaltstypen und den empfangenen AMQP-Nachrichtentexten gesendet werden.
Fall 1: Ereignis mit Textdaten versenden:
{
"type": "event",
"event": "<event_name>",
"dataType": "text",
"data": "text data"
}
Empfangener AMQP-Nachrichtentext:
text data
Fall 2: Ereignis mit JSON-Daten versenden:
{
"type": "event",
"event": "<event_name>",
"dataType": "json",
"data": {
"hello": "world"
}
}
Empfangener AMQP-Nachrichtentext:
{
"hello": "world"
}
Fall 3: Ereignis mit Binärdaten versenden:
{
"type": "event",
"event": "<event_name>",
"dataType": "binary",
"data": "aGVsbG8gd29ybGQ=" // base64 encoded binary
}
Empfangener AMQP-Nachrichtentext:
<binary data>