Приложения в режиме реального времени с службой Azure SignalR и функциями Azure

Служба Azure SignalR в сочетании с Функции Azure позволяет запускать веб-приложения для обмена сообщениями в режиме реального времени в бессерверной среде. В этой статье представлен обзор работы служб.

Служба Azure SignalR и Функции Azure являются полностью управляемыми, высокомасштабируемыми службами. Они позволяют сосредоточиться на создании приложений вместо управления инфраструктурой. Обычно используются две службы вместе для обеспечения обмена данными в режиме реального времени в бессерверной среде.

Интеграция обмена данными в режиме реального времени с службами Azure

Служба Функции Azure позволяет писать код на нескольких языках, включая JavaScript, Python, C#и Java, который активирует всякий раз, когда события происходят в облаке. Примеры этих событий.

  • Запросы HTTP и вебхука.
  • Периодические таймеры.
  • События из служб Azure, например:
    • Сетка событий
    • Концентраторы событий
    • Шина сервисов
    • Канал изменений Azure Cosmos DB
    • Блобы хранилища и очереди
    • Коннекторы Logic Apps, такие как Salesforce и SQL Server.

Используя службу "Функции Azure" для интеграции этих событий с помощью службы Azure SignalR, вы можете уведомлять тысячи клиентов о каждом событии.

Некоторые распространенные сценарии беcсерверной передачи сообщений в режиме реального времени, которые можно реализовать с помощью служб "Функции Azure" и SignalR, включают следующее.

  • Визуализация телеметрии устройства Интернета вещей на панели мониторинга или карте в режиме реального времени.
  • Обновите данные в приложении при обновлении документов в Azure Cosmos DB.
  • Отправка уведомлений в приложении при создании новых заказов в Salesforce.

Привязки службы SignalR для Azure Functions

Привязки службы SignalR для службы "Функции Azure" позволяют приложению "Функции Azure" публиковать сообщения клиентов, подключенных к службе SignalR. В ближайшее время клиенты смогут подключаться к службе с помощью пакета SDK клиента SignalR, доступного на языках .NET, JavaScript и Java, а вскоре и с большим количеством языков.

Пример сценария

Использование Azure Functions для интеграции с Azure Cosmos DB — это пример применения привязок SignalR Service для отправки сообщений в режиме реального времени при появлении новых событий в канале изменений Azure Cosmos DB.

Azure Cosmos DB, Функции Azure, Служба SignalR

  1. Изменение внесено в коллекцию Azure Cosmos DB.
  2. Событие изменения передается в канал изменений Azure Cosmos DB.
  3. Триггер Azure Cosmos DB активирует функцию Azure в ответ на событие изменения.
  4. Выходная привязка службы SignalR публикует сообщение в службу SignalR.
  5. Служба SignalR публикует сообщение всем подключенным клиентам.

Проверка подлинности и пользователи

Служба SignalR позволяет транслировать сообщения всем или подмножествам клиентов, таким как те, которые принадлежат одному пользователю. Вы можете объединить привязки службы SignalR для функций Azure с аутентификацией службы приложений для проверки подлинности пользователей с помощью таких поставщиков, как Microsoft Entra ID, Facebook и X. Затем вы можете отправлять сообщения непосредственно этим аутентифицированным пользователям.

Следующие шаги

Полные сведения об использовании Функций Azure и службы SignalR см. в следующих ресурсах:

Чтобы протестировать привязки службы SignalR для Azure Functions, см. здесь: