Конференции на Raw WebSocket API

Denis Avramov

New Member
Добрый день.

Пишем проект на Unity. Необходимо соединить по видеосвязи несколько человек. Так как нет подходящих SDK, используем Raw WebSocket API. Насколько я понял, соединение к видеопотокам происходит по имени (поле name в запросах publish, unpublish, play, stop) причем 1 к 1. Чтобы соединить 15 человек таким образом всего нужно установить 15 * 15 = 225 таких соединений (для клиента 15: 1 на трансляцию и 14 на прием остальных).

Вопрос. Должно ли это быть сделано выше описанным способом (устанавливать соединение по одному)? Или для конференций есть какая-нибудь другая логика (в SDK видел есть сущность Room)? Не будет ли проблем с производительностью?
 

Max

Administrator
Staff member
Добрый день.
Вопрос. Должно ли это быть сделано выше описанным способом (устанавливать соединение по одному)? Или для конференций есть какая-нибудь другая логика (в SDK видел есть сущность Room)? Не будет ли проблем с производительностью?
RoomApi - это часть WebSDK, с определенным бэкендом на стороне сервера, для организации конференций и видео чатов. Вам, скорее всего, не подойдет, т.к., как и весь WebSDK, требует JavaScript движка. У нас есть примеры использования WebSDK на React JS, возможно, это будет чем-то полезно.
Что касается публикации и воспроизведения нескольких потоков в одной websocket сессии, то это возможно. То есть один connect (одно websocket соединение), и в этой сессии может быть один publish (возможно, и больше, но могут быть проблемы на iOS, например) и несколько одновременных play. Уникальным идентификатором потока на стороне сервера является имя. Каждая publish или play медиасессия должна иметь уникальный идентификатор mediaSessionId.
В любом случае, WebRTC соединение для передачи медиаданных устанавливается на каждую publish или play медиасессию отдельно.
 
Top