В этом руководстве описывается, как клиенты, такие как веб-страницы или мобильные приложения, могут получать обновления с устройств в реальном времени. Облачные приложения больше не отправляют HTTP-запросы для получения актуальной информации. Вместо этого Служба Azure SignalR отправляет содержимое клиентам, как только оно становится доступным. Являясь управляемой службой, Служба Azure SignalR упрощает процесс добавления возможности обмена данными в реальном времени в приложения.
Архитектура
Скачайте файл Visio для этой архитектуры.
Рабочий процесс
Веб-страницы, мобильные приложения и другие клиенты запрашивают конечную точку Службы Azure SignalR и токен из Функций Azure — бессерверной вычислительной платформы. Помимо интеграции данных из различных источников, Функции также управляют конечными точками Службы Azure SignalR и информацией о клиентских группах.
Клиенты используют конечную точку и токен для подключения к Службе Azure SignalR.
Устройства Интернета вещей отправляют данные телеметрии в Azure IoT Edge и Центр Интернета вещей Azure. IoT Edge отправляет обработанную телеметрию для устройств Интернета вещей в Центр Интернета вещей.
Телеметрия активирует функцию в Функциях Azure. Функция выполняет следующие задачи:
- Выполняет любые вычисления, которые вы запрограммируете для телеметрии.
- Преобразует данные любым способом, который вы запрограммируете.
- Использует управляемую Службу Azure SignalR Service для трансляции данных.
Служба Azure SignalR поддерживает несколько методов, которые используют приложения реального времени, например WebSocket — предпочтительный транспортный протокол. Но Служба Azure SignalR использует такие методы, как события, отправленные сервером (SSE), и длительный опрос, когда доступа к WebSocket нет. Служба Azure SignalR автоматически определяет и инициализирует соответствующий транспортный протокол на основе функций, поддерживаемых сервером и клиентом.
Сообщение Службы Azure SignalR отправляется определенному клиенту или группе клиентов. Клиенты используют данные для обновления приложений.
Подробности сценария
Приложениям Интернета вещей (IoT) часто требуются данные в реальном времени с устройств Интернета вещей. Например, некоторые приложения отображают данные телеметрии или оповещения, получаемые с устройств. При использовании традиционных методов опроса эти клиентские приложения запрашивают у устройств изменения состояния.
В этом руководстве описывается, как клиенты, такие как веб-страницы или мобильные приложения, могут получать обновления с устройств в реальном времени. Облачные приложения больше не отправляют HTTP-запросы для получения актуальной информации. Вместо этого Служба Azure SignalR отправляет содержимое клиентам, как только оно становится доступным. Являясь управляемой службой, Служба Azure SignalR упрощает процесс добавления возможности обмена данными в реальном времени в приложения.
Например, у розничного продавца может быть приложение панели мониторинга, которое отображает текущее количество покупателей в магазине. При использовании решения из этого руководства приложение не будет запрашивать последние сведения о количестве клиентов. Вместо этого Служба Azure SignalR передаст эту информацию приложению при изменении общего количества.
Потенциальные варианты использования
Помимо розничной торговли, это решение может принести пользу и в других областях:
- Любой сценарий, в котором серверы передают данные в реальном времени клиентам для использования в визуализациях и приложениях.
- Многофункциональные и интерактивные приложения, такие как настраиваемые пользовательские интерфейсы и карты.
Конкретные примеры, обеспечивающие обновление данных в реальном времени, включают:
- Мониторинг парка, который сопоставляет расположение транспортного средства (автомобиль).
- Удаленный мониторинг температуры, давления и состояния производственного процесса (также применимо к энергетической отрасли).
- Системы управления бурением, использующие телеметрию, такие как революции в минуту, моментальный момент и нагрузку крючка для оптимизации процессов.
- Механизмы создания оповещений.
Рекомендации
При использовании этого шаблона учитывайте следующие моменты:
Если ваша система имеет строгие требования к задержке, помните о факторах, которые могут значительно увеличить задержку:
- В сценариях реального времени сигнализация облачных приложений может увеличить задержку до 10 секунд.
- Любые шаги преобразования данных, которые вы добавляете в решение, могут увеличить задержку.
Служба Azure SignalR определяет семь уровней, обеспечивающих разные возможности, связанные с производительностью. Определите входящую и исходящую пропускную способность вашего сценария, проанализировав факторы, влияющие на эти значения. Затем выберите уровень, который лучше всего соответствует вашим требованиям. Дополнительные сведения см. в статье Общие сведения о производительности для Службы Azure SignalR.
Azure SignalR основывается на протоколе SignalR и следует шаблону публикации-подписки при трансляции сообщений клиентам. Рассмотрите возможность наличия собственного механизма подтверждения сообщений (ACK), когда необходимо гарантировать доставку сообщений при публикации сообщений нескольким клиентам.
При отображении данных в реальном времени в визуальных элементах Power BI рассмотрите возможность потоковой передачи в реальном времени в Power BI в качестве альтернативы этому решению.
Следующие шаги
- Служба SignalR Azure
- Руководство по проверке подлинности Служба Azure SignalR с помощью Функции Azure
- Создание приложений реального времени с помощью Функций Azure и Службы Azure SignalR
- Визуализация данных датчика в режиме реального времени из Центр Интернета вещей Azure с помощью Power BI
- Шаблоны решений Azure Stream Analytics
Связанные ресурсы
Сведения о связанных решениях см. в следующих статьях:
Руководства по архитектуре Интернета вещей:
Шаблоны Интернета вещей
- Маршрутизация событий Интернета вещей
- Циклы измерения и контроля Интернета вещей
- Циклы мониторинга и управления Интернета вещей