Если и есть один урок, который мы извлекли из быстрого перехода к удаленной работе, так это то, что сотрудничество основывается на соединениях между приложениями в реальном времени. Если вы делитесь документом с коллегой, вы хотите видеть, над чем он работает и когда. В образовании общие доски позволяют учителям побуждать учащихся показывать то, что они узнали, в то время как кураторские сеансы совместного просмотра помогают вернуть индивидуальный характер покупок в небольшом магазине.

Microsoft недавно выпустила набор инструментов Azure, Azure Web PubSub., чтобы помочь создавать и запускать это новое поколение приложений, используя преимущества подхода «платформа как услуга» Azure и его бессерверных инструментов для размещения службы публикации и подписки, предназначенной для объединения индивидуальных и индивидуальных -многие и связь «многие ко многим» с использованием преимуществ облачной экономики и масштабируемости для предоставления относительно недорогих услуг.

Представляем Azure Web PubSub

В основе Платформа Azure Web PubSub это Протокол WebSockets. Поддерживается всеми основными браузерами и большинством платформ кодаWebSockets предлагает двустороннее соединение между сервером и конечной точкой с поддержкой полнодуплексной связи. И конечная точка, и сервер могут отправлять и получать данные одновременно, что позволяет вести диалог между приложениями (и пользователями) в режиме реального времени. Это важный шаблон проектирования, поскольку он обеспечивает основу для всех типов приложений – от чата до совместного использования экрана, от совместной работы с документами до игр, от обнаружения Интернета вещей в реальном времени до потоков телеметрии в реальном времени.

WebSockets не лучше всего подходит для видео и аудио (хотя они поддерживаются); для этого вам следует подумать о WebRTC и подобных протоколах. С помощью WebSockets вы делитесь текстовой информацией. Это могут быть обновления документа JSON, потока финансовых данных или обеих сторон чата. Это на удивление полезный метод, поскольку многое из того, что мы хотим делать в реальном времени, не ограничивается голосом и видео и не требует подключения к сети с высокой пропускной способностью.

Как и большая часть приложений и платформы обмена сообщениями Azure, Azure Web PubSub является управляемой службой. Вам не нужно вставать сервер; этим всем занимается Azure. Он управляет масштабированием и надежностью, поэтому все, над чем вам нужно работать, – это ваш код. Аспект масштабирования Azure Web PubSub, вероятно, является его наиболее важной функцией. Он предназначен для масштабной работы с использованием глобально реплицированных экземпляров для поддержки миллионов подключений.

Azure Web PubSub – это классическая архитектура публикации и подписки, в которой концентраторы рассматриваются как издатели, а клиенты – как подписчики. Это упрощает потоки управления и гарантирует, что ваше приложение всегда будет контролировать обмен сообщениями. Клиенты подключаются через WebSockets с библиотеками, доступными для большинства языков и платформ, и начальной документацией для JavaScript, C #, Python и Java.

Создание веб-приложений PubSub

Работа с Azure Web PubSub во многом схожа с использованием любой другой службы платформы Azure. Вы начинаете с создания экземпляра службы на портале Azure. и добавив его в группу ресурсов. Затем он создает URL-адрес для доступа клиента, который сохраняется на портале. Он содержит токен доступа, который проверяет клиентов на соответствие вашей службе.

После включения службы Azure вы можете создать клиент, используя любую стандартную библиотеку WebSocket. Поскольку это открытый стандарт, можно использовать множество различных библиотек с реализациями для наиболее распространенных языков и фреймворков. Microsoft выпустила собственную библиотеку Python, с полной поддержкой проверки подлинности и конечных точек Azure. Есть также библиотека .NET, которая в настоящее время разрабатывается.

Это простая в использовании библиотека. Начните с создания класса WebPubSubServiceClient для хранения конечных точек и секретов аутентификации. Создав класс, вы можете использовать его для создания сообщений и отправки запросов в ваш хаб, размещенный в Azure. Если вы не используете библиотеку, Microsoft задокументировала набор REST API для службы, чтобы вы могли быстро создавать и использовать свой собственный код.

Глядя на Служба Azure Web PubSub на стороне клиента, есть несколько ключевых понятий. Первый – это концентратор, который контролирует все соединения для определенного набора клиентов, с сообщениями, отправляемыми в виде строк JSON, UTF-8 или двоичных данных. Пользователи могут иметь несколько подключений к концентратору, в то время как группы управляют ретрансляцией сообщений в концентратор и из него. Каждое соединение имеет свой уникальный идентификатор для маршрутизации сообщений и управления ими. Сообщение, отправленное из концентратора в определенное соединение, будет доставлено только в это соединение.

Все клиент

На стороне Azure Web PubSub может подключаться к любому коду, запущенному в Azure. Опять же, используйте строку подключения для подключения вашего кода к хабу. Возможно, лучше думать о коде вашего сервера как о другом клиенте, хотя и с инструментами для поддержки аутентификации клиентов и управления событиями, отправляемыми от клиентов. Серверное приложение можно рассматривать как конкретное соединение (или, если вы масштабируете с несколькими концентраторами, как определенного пользователя), так что любые сообщения, отправляемые от клиента на сервер через Web PubSub, направляются непосредственно на сервер, а не на него. другие клиенты, сохраняя их конфиденциальность.

Эта модель хорошо работает с бессерверным кодом, например с использованием функций Azure для вашего сервера, с отдельными функциями для обработки аутентификации и обработки сообщений. Каждое сообщение является событием, поэтому запуск нового экземпляра функции с каждым сообщением или использование такого инструмента, как Event Grid, вместе с Облачные события добавление очереди сообщений позволит приложению Web PubSub быстро масштабироваться.

Служба использует модель «ступица и луч» для управления подключениями. Когда вы создаете стандартный экземпляр, вам будет предложено установить количество единиц. Каждое устройство представляет собой концентратор, который может принимать до 1000 клиентских подключений, максимум 100 единиц. Если вы разрабатываете службу, вы можете выбрать уровень Free, который дает вам одну единицу с 20 подключениями и до 20 000 сообщений в день, чего должно хватить для большинства потребностей в тестировании и разработке. Полный уровень Standard имеет неограниченный обмен сообщениями, с предварительные цены 1,61 доллара за единицу в день и 1 доллар за миллион сообщений (первый миллион – бесплатно). Как и в случае с большинством служб предварительной версии Azure, вы должны ожидать изменения цен, когда они станут общедоступными.

Если вы создаете инструменты, которым нужен компонент реального времени, и вам нужно что-то более широко поддерживаемое, чем SignalR .NET, стоит обратить внимание на Azure Web PubSub. Основанный на общих веб-протоколах и использующий относительно простые полезные нагрузки сообщений, это полезный инструмент для добавления широкого спектра сообщений и маршрутизации событий в веб-приложения. Поскольку миллион сообщений стоит около доллара, этот инструмент должен хорошо масштабироваться без ущерба для вашего бюджета.

Авторские права © 2021 IDG Communications, Inc.


#Создавайте #коммуникационные #приложения #реальном #времени #помощью #Azure #Web #PubSub

Source link