Поделиться через


Обзор Socket.IO в Azure

Socket.IO — это широко популярная библиотека с открытым кодом для обмена сообщениями в режиме реального времени между клиентами и сервером. Управление отслеживанием состояния и постоянными подключениями между клиентами и сервером часто является источником разочарования для Socket.IO пользователей. Проблема более острой, если несколько экземпляров Socket.IO распределяются по серверам.

Azure предоставляет полностью управляемое облачное решение для Socket.IO. Эта поддержка устраняет нагрузку на развертывание, размещение и координацию Socket.IO экземпляров для разработчиков. Затем команды разработчиков могут сосредоточиться на создании интерфейсов реального времени с помощью знакомых API из библиотеки Socket.IO.

Упрощенная архитектура

Эта функция удаляет потребность в серверном компоненте адаптера при масштабировании приложения Socket.IO, что позволяет команде разработчиков получать преимущества упрощенной архитектуры.

Screenshot of a typical architecture of a fully managed Socket.IO app.

Преимущества размещения приложения Socket.IO самостоятельно

В следующей таблице показаны преимущества использования полностью управляемого решения из Azure.

Позиция Размещение приложения Socket.IO самостоятельно Использование Socket.IO в Azure
Развертывание Управляемые клиентом Управляемое Azure
Размещение на компьютере Клиенту необходимо подготовить достаточно ресурсов сервера для обслуживания и поддержания постоянных подключений Управляемое Azure
Масштабирование подключений Управление клиентом с помощью серверного компонента, называемого адаптером Управление Azure с более чем 100 000 клиентскими подключениями из коробки
Гарантия времени простоя Управляемые клиентом Управление Azure с более чем 99,9 % времени простоя
Безопасность корпоративного уровня Управляемые клиентом Управляемое Azure
Система поддержки запросов Нет данных Управляемое Azure

При размещении приложения Socket.IO самостоятельно клиенты устанавливают WebSocket или подключения с длинным опросом непосредственно с сервером. При сохранении таких подключений с отслеживанием состояния на сервере Socket.IO сильное бремя. Это бремя ограничивает количество одновременных подключений и увеличивает задержку обмена сообщениями.

Распространенный подход к собранию проблемы параллелизма и задержки заключается в горизонтальном масштабировании на нескольких серверах Socket.IO. Для масштабирования требуется серверный компонент, называемый адаптером , например адаптер Redis, который предоставляет библиотека Socket.IO. Однако такой адаптер представляет дополнительный компонент, который необходимо развернуть и управлять ими. Кроме того, для правильной работы необходимо написать дополнительную логику кода.

Diagram of a typical architecture of a self-hosted Socket.IO app.

С помощью Socket.IO в Azure вы освобождаетесь от обработки проблем масштабирования и реализации логики кода, связанной с использованием адаптера.

Та же модель программирования

Чтобы перенести локальное приложение Socket.IO в Azure, добавьте только несколько строк кода. Нет необходимости изменять остальную часть кода приложения. Другими словами, модель программирования остается той же, и сложность управления приложением в режиме реального времени уменьшается.