Основные понятия Azure Web PubSub
Служба Azure Web PubSub помогает создавать веб-приложения для обмена сообщениями в режиме реального времени. Клиенты подключаются к службе по стандартному протоколу WebSocket, а служба предоставляет REST API и пакеты SDK для управления этими клиентами.
Условия
Ниже приведены некоторые важные термины, используемые службой.
Подключение: подключение, также известное как клиент или подключение клиента, это логическая связь между клиентом и службой Web PubSub. Через "подключение" клиент и служба участвуют в ряде взаимодействий с отслеживанием состояния. Подключения , использующие разные протоколы, могут вести себя по-разному, например, некоторые подключения ограничены длительностью сетевого подключения, а другие могут распространяться по нескольким последовательным сетевым подключениям между клиентом и службой.
Центр — это логическая концепция для набора клиентских подключений. Обычно используется один концентратор для одного сценария, например концентратор чата или концентратор уведомлений. При подключении клиента он подключается к концентратору и во время его существования принадлежит к нему. После подключения клиента к концентратору он существует. Разные приложения могут совместно использовать одну службу Azure Web PubSub с использованием разных имен центров. Хотя число центров не ограничено, концентратор потребляет больше нагрузки на службу по сравнению с группой. Рекомендуется иметь предопределенный набор концентраторов, а не создавать их динамически.
Группа — это подмножество подключений к центру. Клиентское соединение можно добавлять к группе или удалять из нее в любое время. Например, если клиент присоединяется к комнате чата или покидает ее, такую комнату можно рассматривать как группу. Клиент может присоединиться к множеству групп, а группа может содержать множество клиентов. Группа похожа на группу "сеанс", сеанс группы создается после того, как кто-то присоединяется к группе, и сеанс исчезает, когда никто не находится в группе. Сообщения, отправленные группе, доставляются всем клиентам, подключенным к группе.
Пользователь — подключения к службе Web PubSub могут принадлежать одному пользователю. Пользователь может иметь множество подключений, например, если один пользователь подключен через несколько устройств или на нескольких вкладках браузера.
Сообщение. Когда клиент подключен, он может отправлять сообщения в вышестоящее приложение или получать сообщения от него через подключение WebSocket. Сообщения могут находиться в формате обычного текста, двоичного файла или JSON и иметь максимальный размер 1 МБ.
Клиентские события: события создаются во время жизненного цикла клиентского подключения. Например, простое клиентское подключение WebSocket создает событие
connect
при попытке подключиться к службе, событиеconnected
— при успешном подключении к службе, событиеmessage
— при отправке сообщений службе и событиеdisconnected
— при отключении от службы. Сведения о событиях клиента показаны в разделе протокола клиента.Обработчик событий: обработчик событий содержит логику для обработки событий клиента. Обработчики событий регистрируются и настраиваются в службе заранее с помощью портала или Azure CLI. Сведения описаны в разделе обработчика событий.
Прослушиватель событий(предварительная версия): прослушиватель событий просто прослушивает события клиента, но не может влиять на время существования клиентов через их ответ. Сведения описаны в разделе прослушивателя событий.
Сервер: сервер может обрабатывать события клиента, управлять подключениями клиентов или публиковать сообщения в группах. Обработчик событий и прослушиватель событий считаются серверными. Сведения о сервере описаны в разделе протокола сервера.
Внимание
Hub
UserId
, Group
являются важными ролями при управлении клиентами и отправке сообщений. Они будут обязательными параметрами в разных вызовах REST API в виде обычного текста. Поэтому не помещайте конфиденциальную информацию в эти поля. Например, учетные данные или маркеры носителя, которые будут иметь высокий риск утечки.
Рабочий процесс
Типичный рабочий процесс использования службы показан ниже.
Как показано на схеме рабочего процесса выше:
Клиент подключается к концентратору в службе с помощью транспорта WebSocket. Служба может пересылать сообщения в настроенный upstream(сервер) или обрабатывать сообщения самостоятельно и напрямую разрешать клиентам выполнять публикацию или вложенные сообщения в зависимости от протокола, используемого клиентом. Сведения описаны в клиентских протоколах.
Служба вызывает сервер с помощью протокола CloudEvents в различных событиях клиента. CloudEvents — это унифицированное и не зависящее от протокола определение структуры и метаданных для событий, размещенных в среде CNCF. Подробности см. в разделе Протокол сервера.
Сервер может вызывать службу, используя REST API для отправки сообщений клиентам или для управления подключенными клиентами. Подробности см. в разделе Протокол сервера.