Расширение CloudEvents для прослушивателя событий Azure Web PubSub с протоколом AMQP
Служба Azure Web PubSub описывает события клиента как CloudEvents. CloudEvents — это спецификация описания данных событий в общих форматах для обеспечения взаимодействия между службами, платформами и системами.
Прослушиватели событий службы прослушивают события клиента. Центры событий в настоящее время являются единственной поддерживаемой конечной точкой прослушивателя событий, основной протокол которой — AMQP (расширенный протокол очереди сообщений). Служба Web PubSub использует привязку протокола AMQP CloudEvents для сопоставления CloudEvents с сообщениями AMQP.
Данные, отправляемые из службы на сервер, всегда в формате CloudEvents binary
.
Расширение атрибутов CloudEvents для Web PubSub
Это расширение определяет атрибуты, используемые Web PubSub для каждого созданного события.
В следующей таблице содержатся атрибуты, сопоставленные с разделом стандартных свойств сообщения AMQP.
Имя | Описание: | Пример |
---|---|---|
content-type |
Тип MIME RFC-2046 для текста сообщения | application/json |
message-id |
Уникально определяет сообщение в службе Web PubSub в формате "{connection-id}/{целое число, созданное службой}" | 0bd83792-2a0c-48d3-9fbd-df63aa2ed9db/1 |
В следующей таблице содержатся все атрибуты CloudEvents, сопоставленные с разделом свойств приложения сообщения AMQP. Каждое имя атрибута имеет префикс cloudEvents:
.
Значение "*" после имени атрибута указывает, что атрибут присутствует только в том случае, если значение не равно null или пусто.
События
В этом разделе показан текст сообщения AMQP со значениями атрибутов, зависящими от определенного типа события клиента. Значения атрибутов, которые не зависят от типа события клиента, опущены.
- Системное
connect
событие: не поддерживается прослушивателями событий. - Системное событие
connected
- Системное событие
disconnected
- События
message
пользователей для простых клиентов WebSocket - Пользовательское событие
{custom_event}
для клиентов PubSub WebSocket
Системное событие connected
content-type
:application/json
cloudEvents:type
:azure.webpubsub.sys.connected
cloudEvents:eventname
:connected
Текст сообщения всегда пуст.
{}
Системное событие disconnected
content-type
:application/json
cloudEvents:type
:azure.webpubsub.sys.disconnected
cloudEvents:eventname
:disconnected
Текст сообщения содержит причину отключения клиента.
{"reason":"{Reason}"}
События message
пользователей для простых клиентов WebSocket
content-type
:application/octet-stream
для двоичного фрейма;text/plain
для текстового фрейма;cloudEvents:type
:azure.webpubsub.user.message
Текст сообщения — это то, что отправляет клиент.
Настраиваемое пользовательское событие {custom_event}
для клиентов PubSub WebSocket
content-type
:application/octet-stream
для двоичного кадра;application/json
для кадра JSON; для текстового кадра;text/plain
application/x-protobuf
для кадра Protobuf;cloudEvents:type
:azure.webpubsub.user.<event_name>
В следующих случаях показано, как отправлять события с различными типами контента данных и полученными телами сообщений AMQP.
Сценарий 1. Отправка события с текстовыми данными:
{
"type": "event",
"event": "<event_name>",
"dataType": "text",
"data": "text data"
}
Получен текст сообщения AMQP:
text data
Сценарий 2. Отправка события с данными JSON:
{
"type": "event",
"event": "<event_name>",
"dataType": "json",
"data": {
"hello": "world"
}
}
Получен текст сообщения AMQP:
{
"hello": "world"
}
Сценарий 3. Отправка события с двоичными данными:
{
"type": "event",
"event": "<event_name>",
"dataType": "binary",
"data": "aGVsbG8gd29ybGQ=" // base64 encoded binary
}
Получен текст сообщения AMQP:
<binary data>