Android VideoChat roomApp

Maksym

Member
Добрый день.
Помню, что при обычной публикации стрима, можно указывать appKey при конекте.
А вот с комнатами можно указывать только urlWsServer и username (RoomManagerOptions)
Подскажите, верное направление, как используя комнаты, указывать appKey и custom при конекте к серверу и присоединении к комнате
 

Max

Administrator
Staff member
Добрый день.
RoomApi построено как обертка над стандартными возможностями WCS SDK с использованием REST hook для подключения пользователей и обмена сообщениями в комнатах. Следовательно, Вы не можете использовать собственные REST hook приложения и кастомные данные, если Вы пользуетесь RoomApi.
Если Вам все же необходимо использовать собственное REST hook приложение, например, для аутентификации пользователей, и при этом пользоваться RoomApi, Вы должны реализовать проксирование всех запросов к стандартному приложению roomApp (URL приложения http://wcs_ip:8081/apps/RoomApp) и возврат всех ответов. В свою очередь, Ваше приложение должно быть зарегистрировано в качестве roomApp
Code:
update app -l http://yourhost/rest-hooks roomApp
См также дискуссию здесь, там приведен пример php-скрипта на бэкенде.
 

Maksym

Member
Добрый день.
1. Значит реализовать схему, как на рисунке не получится для комнат

Если коротко, то она одном сервере будут(так сложилось...):
  • Фронт
  • Бэк
  • WCS
И будет две версии
  1. Prod
  2. Stage(для тестирования функционала)
Хотели разделить их при помощи AppKey, который бы смотрел на свой api
2. Планируете ли вы в скором будущем добавить возможность указывать AppKey и поле custom для комнат/других приложений?
P.S.: Если честно, то не совсем понятно, почему вы ограничили работу с комнатами только одним приложением
 

Max

Administrator
Staff member
Добрый день.
Возможность указывать appKey и поле custom для других приложений уже есть, это методы Connection.setAppKey и Connection.setCustom соответственно. Вот здесь есть пример использования setCustom для передачи ключа авторизации в CDN.
В отличие от большинства бэкенд-приложений, которые представляют собой заглушки, возвращающие 200 OK, приложение roomApp реализовано на уровне сервера с использованием REST hook и REST API. Сообщения передаются клиентам при помощи REST API метода /data/send с использованием данных, собранных при обработке REST hook /connect, для публикации потоков на стороне клиента "под капотом" используются функции клиентского SDK.
Для того, чтобы реализовать Вашу схему, Вам необходимо самостоятельно реализовать чат-комнаты, для этого достаточно реализовать передачу сообщений от клиента на бэкенд с использованием REST hook /OnDataEvent и рассылку сообщений подключенным клиентам с бэкенда при помощи REST API метода /data/send. Другой вариант, менее трудозатратный - разделить Production и Stage по различным WCS серверам, этот вариант выглядит более правильным, в том числе, с точки зрения безопасности.
 

Maksym

Member
Спасибо.
Про то, что разделить прод и стейдж - знаю, но так сложилось
По реализации отправки сообщений - уже так и делаем, используя обычные стрими
 
Top