Как сделать свою стриминговую площадку
Перейти к содержимому

Как сделать свою стриминговую площадку

  • автор:

Как сделать свою стриминговую площадку (технически)?

Вопрос достаточно многогранный, и я не надеюсь получить детальный и развернутый ответ, но любая информация будет полезна. Т.е. грубо говоря как (на каком языке) надо сделать прием потока, далее его обработку и раздачу зрителям. И насколько мощными ресурсами должен располагать сервер в перерасчете на 1000 зрителей например (в 720p допустим качестве). Слышал про bittorrent подход аля tribler, но это как то совсем сложно.

  • Вопрос задан более трёх лет назад
  • 881 просмотр

Комментировать

Решения вопроса 0

Ответы на вопрос 2

Вот клон youtube на php(правда количество говнокода в нем невероятно) https://github.com/DanielnetoDotCom/YouPHPTube стриминг там вроде тоже есть.
По факту пофиг какой язык, по факту непосредственно стриммингом все равно будет заниматься ffmpeg: https://trac.ffmpeg.org/wiki/StreamingGuide https://trac.ffmpeg.org/wiki/ffserver ну или какое-то платное решение https://www.wowza.com/ А с нуля делать это все анриал, там дохренелеон тонкостей и форматов.

Ответ написан более трёх лет назад

Комментировать

Нравится 1 Комментировать

chupasaurus

chupasaurus @chupasaurus

Сею рефлекторное, злое, временное

  • Слой медиа-серверов, принимающих поток от стримеров и занимающихся перекодировкой
  • CDN
  • фронтенд и бэкенд сайта

Ответ написан более трёх лет назад

Комментировать

Нравится 1 Комментировать

Ваш ответ на вопрос

Войдите, чтобы написать ответ

видеотрансляция

  • Видеотрансляция
  • +1 ещё

Какую камеру выбрать для наблюдения за животными и рыбками в разных условиях?

  • 1 подписчик
  • 02 мая
  • 82 просмотра

Как Создать Свой Стриминговый Сервис или Платформу

Что вы выберете: прочесть книгу или посмотреть фильм? Большинство предпочтет второй вариант, поскольку для мозга это привычнее, а значит, приятнее (90% данных, поступающих в мозг, — визуальная информация). Благодаря этой особенности большая часть интернет-трафика приходится на такие сайты, как YouTube, Netflix, Twitch и Amazon Prime. Ниже мы расскажем, как использовать эту тенденцию, создав свой сайт для живого видеостриминга и монетизировав его.

Шаг 1: Исследуем рынок видеостриминга

Веб-сайт Потокового Видео в Реальном Времени исследование

Статистика популярности стриминговых сервисов по регионам. Источник изображения

Согласно исследованиями Sandvine Incorporated передача видео занимает 60% всего интернет-трафика, большая часть которого — онлайн-стриминг новостей, телешоу, спорта, сериалов, фильмов и видеоигр на Netflix, YouTube, Twitch и других площадках. Создавая сайт для стриминга видео, вы должны опираться на их опыт в разработке, дизайне и маркетинге.

Netflix Веб-сайт Потокового Видео в Реальном Времени

Netflix. Американский развлекательный веб-сервис, поставляющий фильмы и сериалы на основе потокового мультимедиа. Главной особенностью сайта является возможность просмотра всего сезона сериала, тогда как другие сервисы показывают по одной серии в день или неделю. Опросы показывают, что благодаря этому 60% пользователей намного дольше остаются на сайте Netflix, просматривая за одну сессию две и больше серии, многие просматривают сразу весь сезон.

  • 30-дневная бесплатная пробная версия;
  • хорошо проработанная система родительского контроля;
  • одна из самых больших баз фильмов и сериалов;
  • много уникального контента;
  • удобный интерфейс.

YouTube. Сервис работает с 2005 года, возможность вести прямые трансляции появилась в 2011 году. Главная особенность площадки — бесплатный доступ ко всем функциям, включая возможность монетизации контента. Благодаря этому YouTube стал самой популярной платформой для стриминга видеоигр, теле- и радиопередач (подкастов), шоу, лекций и общения с другими людьми.

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

Twitch Веб-сайт Потокового Видео в Реальном Времени

Twitch. Сервис для бесплатного просмотра и стриминга видеоигр с возможностью монетизации контента, общения со зрителями, системой подписок и прочим. Сайт популярен среди любителей сетевых игр (LoL, Dota, Counter-Strike, Fortnite) и MMORG. В последние годы Twitch также начали использовать видеоблогеры для общения с фанами, ASMR-трансляций, совместного просмотра фильмов и сериалов.

  • система подписок, сохраняющая бесплатный доступ к видеоконтенту, но дающая больше возможностей для общения тем, кто готов платить;
  • интеграция с различными сервисами, помогающая зрителям общаться со стримером (выведение и озвучка платных сообщений, заказ музыки и видео);
  • наличие приложений для смартфонов и ПК, улучшающих качество потока.

Рекомендуем прочитать:

Веб-сайт Потокового Видео в Реальном Времени прогноз погоды

Прогноз развития рынка облачного гейминга. Источник изображения

Если вы хотите создать стриминговый сервис, онлайн-гейминг — наиболее перспективный вариант, поскольку этот рынок, по прогнозам экспертов, будет развиваться быстрее остальных стриминговых услуг и здесь мало конкурентов — максимум два-три достойных игрока. Правда, запуск сайта облачного гейминга потребует очень больших капиталовложений — от 50 до 500 млн долларов.

Шаг 2: Выбираем бизнес-модель сайта

Если проанализировать вышеобозначенные стриминговые сервисы и их аналоги, то можно отметить, что они работают по одной из двух бизнес-моделей:

Платная подписка на весь контент. Посетители должны платить определенную сумму раз в месяц или год, чтобы иметь возможность публиковать / стримить свой контент или смотреть видео других пользователей. Эту бизнес-модель выбрали Netflix, Hulu и будущая Google Stadia. При этом подписка обычно имеет несколько тарифных планов, в зависимости от количества и качества контента.

Netflix подписки Веб-сайт Потокового Видео в Реальном Времени

Стоимость подписки на сайте Netflix

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

  1. Все видеоролики и стримы бесплатны. Сайт монетизируется за счет рекламных вставок в начале видео и / или во время его просмотра. Такую бизнес-модель использует игровой стриминговый сервис Twitch.
  2. Большая часть контента бесплатна, но есть отдельные видео, за доступ к которым нужно либо уплатить определенную сумму (например, 5 долларов за одно видео) или оформить подписку. Так работает YouTube. Реклама на сайте тоже есть.

Веб-сайт Потокового Видео в Реальном Времени цена

Цена и возможности платных подписок на YouTube

Стоит отметить, что использование пользователями блокировщиков рекламы, например, AdBlock, снижает доходность данной бизнес-модели. Некоторые сайты пытаются обойти эту проблему, блокируя доступ к контенту, пока не будет отключен блокировщик рекламы. Это работает, если на площадке есть уникальный контент, который нужен пользователю. Правда, в большинстве случаев такие меры просто отталкивают людей.

Вместо этого лучше создать приложение для ПК и смартфона, где блокировщики рекламы не работают. Так сделали и YouTube, запустив мобильное приложение, и Twitch, создав приложения для телефона и ПК.

Шаг 3: Определяемся с функционалом

Универсальные функции. Инструменты, которые будут использовать все пользователи (поставщики видеоконтента, зрители, администрация), независимо от их потребностей и прав на контент (управление, обработка, удаление).

  1. Домашняя страница. С ее помощью информируют посетителей об особенностях платформы, транслируемом контенте и условиях использования (бесплатно, подписка). Здесь же обычно показывают рекомендуемый контент — лучшее или трендовые ролики и стримы.
  2. Регистрация / вход. Создание профиля пользователя на сайте и доступ к нему посредством электронной почты, телефона и социальных сетей. Также должна быть опция восстановления пароля / доступа к профилю.
  3. Профиль пользователя. На стриминговых платформах это панель для навигации по всему сайту. Здесь же должен быть доступ к инструментам для кастомизации аккаунта, настройки конфиденциальности, ввода персональных данных, интеграции с соцсетями и оплаты подписки и премиум-функций.
  4. Обучение. Контекстные подсказки знакомят пользователей с возможностями платформы при первом запуске. Важно, чтобы у пользователей перед началом обучения была возможность выбора языка интерфейса, если их несколько. Многие сайты / приложения пренебрегают этим моментом, что очень сильно раздражает пользователей.
  1. Поиск видео. Когда ваша стриминговая площадка начнет набирать обороты, количество видеоконтента будет возрастать экспоненциально. Это усложнит навигацию по сайту и поиск нужного ролика. Чтобы этого не произошло, нужна система категорий и тегов, а также множество фильтров. Также этому поспособствует автокорреляция и автозаполнение поисковых запросов.
  2. Видеотека. Различные «Полки» зрителей, где можно отметить понравившиеся и любимые видеоролики, фильмы, сериалы, матчи. Еще можно добавить «Рекомендации», работающие на основе лайков и прошлых просмотров.
  3. Видеоплеер. Ваша главная точка соприкосновения с аудиторией, поэтому данная функция должна быть реализована максимально качественно и внешний вид плеера должен быть максимально приятным. Для этого нужно ввести возможность настройки внешнего вида плеера, качества и скорости видео, отображение листинга контента (стримов). Если это стриминг видеоигр, то также можно добавить возможность отслеживания взгляда стримера (если у него есть соответствующее оборудование), вывод на экран дополнительной статистики и прочее.
  4. Подписка и взаимодействие. Возможность отслеживать новые публикации понравившихся каналов, стримеров, рубрик и взаимодействовать с контентом с помощью чата, комментариев, оценок, обзоров, репостов, лайков и дизлайков.
  5. Платежи. Возможность оплатить подписку или финансово поддержать стримера здесь и сейчас удержит пользователей на вашем сайте. Для этого нужна интеграция с PayPal, Visa / MasterCard, Braintree, Stripe, банками и основными криптовалютами.
  1. Загрузка видео с других ресурсов и устройств на ваш сайт с возможностью последующей обработки контента, а также инструменты для захвата видео с веб-камеры и экрана или интеграция с программами для стриминга видео.
  2. Управление видео. Управление мультимедийной библиотекой должно быть простым, понятным и функциональным. У создателей видеоконтента должна быть возможность сортировки видео, добавления и редактирования сопровождающей видео информации, создания списков воспроизведения, настройки прав доступа и авторских прав.
  3. Монетизация. Запуск рекламы во время стрима, подключение рекламы, которая будет показываться во время просмотра уже выложенного видео, включение баннеров и прочее.
  4. Аналитика. Отслеживание важных статистических данных

Шаг 4: Создаем прототипы дизайна

Обычно разработка дизайна сайта состоит из следующих этапов:

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

Веб-сайт Потокового Видео в Реальном Времени диаграмма

Пример диаграммы пользовательского потока

Карта сайта. Отображает структуру навигации на вашей платформе. Благодаря карте сайта можно понять, как контент будет организован в «экраны» или разделы и как пользователь сможет переходить из одного раздела / «экрана» в другой.

Site map Веб-сайт Потокового Видео в Реальном Времени

Пример карты сайта

Низкокачественные UX-прототипы. Простое схематическое изображение экранов и интерфейса сайта. Обычно это черно-белые каркасные рисунки, дающие лишь общее представление о будущем дизайне сайта.

UX Веб-сайт Потокового Видео в Реальном Времени

Пример низкокачественного прототипа UX

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

Веб-сайт Потокового Видео в Реальном Времени пример

Пример высококачественного прототипа UX

Интерактивные прототипы. Демонстрация интерфейса и дизайна сайта, переходов из одного раздела в другой, запуска ключевых функций и прочих вещей в действии.

Шаг 5: Backend-разработка

  1. Клиент. Программное обеспечение с открытым исходным кодом для записи и потоковой передачи видео, например, OBS Studio.
  2. Сегмент конвертора. Место, где потоковая передача видеоконтента сохраняется, обрабатывается и конвертируется в нужный формат. Обычно этот элемент реализуют посредством адаптивной технологии битрейта MPEG-Dash или сервиса прямой трансляции HLS Apple.
  3. Веб-часть для создания приложения, которое подключается к веб-серверу и демонстрирует видеострим зрителям..
  4. Сеть доставки контента / система распределенных серверов, которая отвечает за доставку контента пользователям в зависимости от их географического положения.

Как мы разработали стриминговый сервис типа Netflix для TvOS

Многообразие стриминговых платформ в последнее время заставляет многие компании задумываться о создании подобного сервиса. Особенно, когда наблюдаешь за успехами других похожих компаний, таких как стриминговый сервис типа Netflix. Давайте разберёмся, почему данное направление разработки так популярно, и какие у него перспективы развития?

Best Practice

Говоря о популярной платформе для стриминга фильмов, каждый сразу думает от Netflix. Безусловно, этот ресурс стал самым востребованным и разрекламированным среди всех похожих онлайн-кинотеатров. Например, согласно исследованиям немецкого ресурса Statista, в 2019 году Netflix заработал свыше 1,86 миллиарда долларов, а количество подписчиков достигло 167 миллионов человек.

Если углубляться в историю, компания Netflix была основана в 1997 году в США в качестве магазинов для проката DVD-фильмов. Затем в 2007 году платформа запустила свой потоковый видеосервис, получив в 2017 году звание стримингового сервиса с наибольшим количеством подписчиков в мире. Сейчас она предлагает оригинальный и качественный контент, а также контент от известных и нишевых режиссёров.

Чем обусловлена популярность?

Платформа Netflix предлагает подписчикам сразу несколько ключевых преимуществ.

1. Доступность

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

2. Оригинальный контент

Netflix транслирует оригинальные произведения и сторонние шоу. Кроме того, некоторые уникальные передачи и программы можно посмотреть лишь на этой платформе.

стриминговый сервис типа Netflix

3. Отсутствие рекламы

Реклама показывается только пользователям по бесплатному доступу. При покупке премиум-доступа пользователи могут смотреть контент без какой-либо рекламы, что очень подкупает новых подписчиков.

4. Алгоритм рекомендаций

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

5. Продвинутое управление

Наилучший пользовательский опыт приложение Netflix обеспечивает своим пользователям с помощью удобного пользования платформой. В частности, удобный видеопроигрыватель, встроенный в приложении, даёт возможность пролистывать видео на 10 секунд вперёд или назад (по двойному тапу), выбор любой доступной аудиодорожки и субтитров к видео. При сворачивании приложения проигрыватель переходит в режим окна и продолжает работать поверх других приложений. И безусловно, нельзя не упомянуть про синхронизацию видео на всех устройствах. Например, вы можете начать смотреть любимый сериал на компьютере, а продолжить на том же месте уже с экрана смартфона.

Как создать сервис типа Netflix?

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

1. Найдите свою нишу

Прежде всего необходимо понять, какой конкретно контент вы хотите показывать на своей платформе. Например, развлекательный (обеспечит вас большой аудиторией), образовательный (популярные видео типа «Как это работает», обучающие видео и инструкции), спортивный (тренировки по популярным направлениям, видео о здоровом питании и т.д.).

стриминговый сервис типа Netflix

2. Определитесь с оригинальностью контента

Теперь вам необходимо понять, будете ли вы использовать видео других авторов, или создавать свои. В первом случае вам предстоит долгая работа с авторами контента для получения прав на использование. Для этого вам будет необходимо связываться с ними напрямую, либо закупать видео у официального дистрибьютера.

3. Выберите модель монетизации

Видеостриминговый сервис не может существовать без монетизации. Как правило, все платформы работают по одной из следующих моделей:

  • плата за просмотр (оплата за просмотр одного выбранного произведения. Подходит для трансляции концертов, конференций, спортивных событий);
  • реклама (запуск рекламы других компаний на вашем сайте. Действенная модель только в том случае, если ваша платформа уже стала популярна);
  • подписка (пользователи платят ежемесячную сумму за возможность просмотра контента в вашей библиотеке. Лучший вариант монетизации, если вы планируете постоянно выпускать новый контент).

4. Продумайте функционал

По образу вашей выбранной платформы, решите, какие из функций вы бы хотели реализовать на своём сервисе. Например, необходимы ли функции регистрации пользователя, выбор подписки, поиск, пуш-уведомления, обзоры и рейтинги. Необходимо также продумать, на какой платформе вы будете размещать сервис. Безусловно, стоит помнить и о дизайне: качественный и привлекательный интерфейс крайне важен для успеха вашего продукта.

Продумав возможности своего видеостримингового сервиса, вам будет проще понять стоимость проекта. Наши специалисты готовы помочь вам и рассчитать MVP, учтя все ваши требования и пожелания.

В чём сложность разработки видеостримингового сервиса на TvOS

Нашей команде разработчиков поступил заказ разработать Netflix-like стриминговый сервис для TvOS платформы. Задачей было переписать iOS проект с Objective-c на Swift, адаптировав под Apple TV нового поколения.

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

В целом, разработка по TvOS мало чем отличается от iOS. Тем не менее, мы выделили два основных отличия.

1) На iOS, iPad, iWatch всё обращение с UI с точки зрения пользователя происходит через тапы и жесты. На TvOS другой механизм: взаимодействие происходит через пульт Siri Remote с использованием мультитач-жестов. Элемент фокусируется, и мы можем выбирать.

2) TvOS приставки слабые по мощности. Поэтому при разработке необходимо ориентироваться на функционал, который будет менее требователен для приставок.

В остальном разработка приложения для TvOS не отличалась от разработки iOS приложений. Наша команда смогла качественно перенести весь необходимый функционал и выполнить пожелания заказчика.

Заключение

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

  • Clients
  • Portfolio
  • Services
  • Blog
  • Contact us

LinkedIn Clutch Reddit Behance Medium Twitter Facebook

© 2008–2024 Joy Dev

Get a free call

Success

Your request has been successfully sent!

Error

An error occurred while processing your request. Please, try again later.

Как сделать стриминговый сервис

На проектах разработчикам часто приходится делать невозможное реальным. Для этого они из-под земли находят нестандартные решения, колдуют над кодом и радуют фантастическим результатом.

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

Как работает система

В разработке был проект для видео стримеров: спикеры могли проводить эфиры на большую аудиторию, вебинары на несколько человек и личные онлайн-встречи с пользователями. Также у каждой трансляции был чат — публичный, групповой и приватный соответственно.

Всего в проекте было 3 роли: Стример, Пользователь, Администратор. Реализовали клиентскую часть и админ-панель.

Для стриминга использовалась сторонняя программа — OBS Studio или любая совместимая. Каждый стример получал в приложении адрес сервера, куда будет транслироваться его поток и секретный ключ авторизации. Он вводил их в OBS студию перед первой трансляцией. Как только стример нажимал Start в OBS, бэкенд понимал, что начался эфир и стример появлялся на главной странице в режиме «Онлайн».

Проблемы и решения

Качество и скорость трансляции

Для просмотра трансляций выбрали формат HLS. Видео доставляется в реальном времени в 3 вариантах качества: высокое, среднее и низкое. Поток из OBS в реальном времени транскодировался в эти три варианта. В плеере можно переключиться между качествами, а также есть режим Auto — в зависимости от скорости интернета, плеер сам выбирал подходящее разрешение. Все фрагменты видео после транскодинга попадали на CDN, чтобы дать лучшую скорость для пользователей со всего мира.

Однако формат HLS имеет один существенный недостаток — серьезную задержку, порядка 10–15 секунд. И хотя мы внедрили последнюю надстройку протокола — Low latency HLS, всё равно разница оставалась существенной, как если бы Стример был на Луне. Такая задержка приемлема для публичных трансляций, но она очень плоха для эфиров, где стример общается напрямую со зрителем как в групповых, так и в личных чатах.

Для таких типов трансляций понадобилась другая технология — WebRTC. Она позволяет вести стриминг напрямую из браузера. Этот протокол был специально разработан для живого общения: имеет очень низкую задержку и используется в Google Meet. Ценой за скорость стало качество картинки — оно заметно хуже, чем в HLS.

Конфликт протоколов

Дальше мы столкнулись с новой проблемой. При старте личного чата у стримера остается включенной OBS и камера уже занята этим протоколом. Чтобы менять тип трансляции, стримеру пришлось бы выключать OBS и включать обратно для каждого личного чата.

На помощь пришёл плагин OBS Virtual camera. Каждый стример должен был поставить его перед первой трансляцией. Плагин создает несколько виртуальных камер, дублирующих поток с OBS. Если в OBS используются какие-то фильтры, то они повторяются и в виртуальных камерах. Далее при включении трансляции в браузере, стример выбирал свободную виртуальную камеру — и вёл трансляцию уже из неё. Это решило проблему с занятостью устройства другой программой.

Высокая нагрузка на ЦПУ

Стоит отметить, что нагрузка на ЦПУ при стриминге была довольно велика, особенно в качестве 4К, и стримерам был необходим производительный ПК.

Протокол WebRTC позволяет участникам созваниваться друг с другом без использования центрального сервера (архитектура Mesh). Несмотря на очевидную привлекательность такой архитектуры, она имеет существенные недостатки — очень высокую нагрузку на ЦПУ, по причине того, что транскодинг происходит на устройстве пользователя (если с камеры идёт изображение 4К, его нужно сжать до вариантов 720p, 1080p, чтобы обеспечить низкую задержку). Кроме того, этот вариант может быть ненадежным из-за агрессивных сетевых экранов у некоторых пользователей.

Поэтому использовали архитектуру SFU, с центральным сервером, обеспечивающим транскодинг и доставку конечным пользователям. Из недостатков — это цена. И чем больше участников WebRTC трансляции, тем она выше, и растёт в геометрической прогрессии.

Этим обусловлено то, что личные трансляции было решено сделать платными. Поскольку OBS продолжала работать во время личных или групповых чатов, необходимо было закрыть доступ до потока HLS (ведь кто-то мог решить сэкономить и смотреть поток с любого стороннего плеера). Поэтому в момент старта личного чата мы отключали транскодинг в HLS.

Много событий в реальном времени

В этой системе было достаточно много событий у пользователей разных ролей.

Часто для обеспечения таких систем реального времени используется протокол Websockets. Каждый клиент (браузер или мобильное приложение) устанавливает соединение по Websockets и посылает, либо принимает сообщения. Недостатком этого протокола является то, что число соединений с сервером удваивается (1 соединение https, одно соединение wss). Кроме того, этот протокол гораздо сложнее масштабировать (разделять нагрузку между серверами, или в зависимости от региона пользователя), он уязвим к DOS-атакам.

Альтернативой ему является, как ни странно, сам HTTP. Этот протокол с незапамятных времён поддерживает т. н. Server-Side Events. Но почему-то эта заложенная мудрыми отцами-основателями WEB редко находит применение. Вторую жизнь этой технологии вдохнул проект Mercure. Благодаря мультиплексированию в HTTP/2, стало возможным использовать лишь одно соединение между клиентом и сервером. Push-события с сервера идут по тому же сокету, что и обычные POLL-запросы http!

Помимо вдвое меньшей нагрузки на сервер, SSE масштабируется гораздо легче, как и обычный HTTP, а реализация на клиенте занимает ровно две строки.

Mercure.rocks позволяет клиенту подписаться на один или несколько каналов (например, на личные или публичные каналы). Используется Cookie авторизация, через которую передаётся JWT со списком доступных пользователю каналов. JWT формирует сервер Backend. Mercure.rocks предоставляет Rest API и достаточно много логов для отладки соединений. Через API всегда можно понять, кто из юзеров на какой канал подписан, в частности, это легко позволяет посчитать пользователей онлайн и кто из них в каком разделе находится. И всё это в реальном времени!

  • стриминг
  • стриминговые сервисы
  • разработка сервисов
  • Разработка мобильных приложений
  • Разработка под Windows

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *