← Cloudflare Realtime / realtime / sfu
Введение
Cloudflare Realtime позволяет добавлять в приложения аудио, видео и данные в реальном времени. Он использует WebRTC, который обеспечивает наименьшую задержку связи на самых разных платформах: в браузерах, на мобильных устройствах и в нативных приложениях.
Realtime интегрируется с вашим бэкендом и фронтендом, добавляя функциональность реального времени.
Зачем нужен Cloudflare Realtime
-
WebRTC сложно масштабировать: Многие сталкиваются со сложностями при масштабировании серверов WebRTC. Операторы сталкиваются с вопросами о том, сколько пользователей может находиться в одной «комнате», или хотят создавать уникальные решения, которые не вписываются в существующие концепции высокоуровневых API.
-
Высокие расходы на исходящий трафик: Использование WebRTC обходится дорого: управляемые решения закладывают высокую наценку за исходящий трафик из облака, а развертывание собственных серверов требует затрат на системное администрирование и масштабирование. У Cloudflare уже есть более 300 точек присутствия, в некоторых из которых развернуто свыше 1 000 серверов. Cloudflare Realtime легко масштабируется поверх этой инфраструктуры и может предложить самую низкую стоимость использования WebRTC.
-
WebRTC растёт: Разработчики всё чаще понимают, что WebRTC нужен не только для видеоконференций. WebRTC поддерживается на многих платформах, эта технология зрелая и хорошо изучена.
Что делает Cloudflare Realtime уникальным
-
Без навязанных соглашений: Cloudflare Realtime не предлагает SDK. Вместо этого он даёт доступ к WebRTC напрямую, что позволяет решать нестандартные задачи, не вписывающиеся в существующие концепции. API намеренно сделан простым.
-
Нет комнат: В отличие от других WebRTC-продуктов, Cloudflare Realtime дает вам полный контроль над каждым треком (аудио, видео, данные), вместо того чтобы предлагать абстракции наподобие комнат. Вы сами определяете протокол присутствия поверх простой модели pub/sub. Каждый конечный пользователь может публиковать аудио-, видео- и треки данных и подписываться на них по своему усмотрению.
-
Без привязки к поставщику: Вы можете использовать Cloudflare Realtime для решения проблем масштабируемости вашего SFU. Его можно применять в сочетании с одноранговой архитектурой. Cloudflare Realtime можно использовать и как самостоятельное решение. Насколько активно применять Cloudflare Realtime, решаете только вы.
Что именно делает Cloudflare Realtime?
-
SFU: Realtime представляет собой особый тип pub/sub-сервера, который хорошо справляется с пересылкой медиаданных клиентам, подписанным на определенные данные. Каждый клиент подключается к Cloudflare Realtime по WebRTC и с помощью WebRTC отправляет данные, получает их или делает и то, и другое. Это могут быть аудио- и видеодорожки или DataChannel.
-
Масштабируется: все серверы Cloudflare действуют как единый сервер, поэтому миллионы клиентов WebRTC могут подключаться к Cloudflare Realtime. Каждый из них может отправлять данные, принимать данные или делать и то и другое при взаимодействии с другими клиентами.
Как большинство разработчиков начинают работу
-
Начните работу с примером echo, который можно скачать из Cloudflare dashboard при создании Realtime App или из демонстрации. Здесь показано, как отправлять и получать аудио и видео.
-
Узнайте, как управлять тем, кто может получать те или иные медиаданные, передавая идентификаторы сессии и трека. Помните: именно вы контролируете, кто получает то или иное медиа. Каждый медиатрек представлен уникальным ID. Сохранение и распространение этого ID лежит на вас.
- Создайте приложение, в котором вы будете управлять каждым подключением к Cloudflare Realtime и идентификаторами треков, создаваемых этим подключением. Вы можете использовать любой инструмент для сохранения и передачи треков. Ознакомьтесь с примерами приложений на демонстрации, например Orange Meets ↗, это полноценное приложение для видеоконференций, которое использует Workers Durable Objects чтобы отслеживать идентификаторы треков.