Всем доброе время суток. Стоит задача разработки сигнального сервера и Веб-Клиентов.
С серверной частью вообщем вопросов нету. А вот относительно клиентской есть несколько вопросов и недопониманий, буду признателен за помощь.
Насколько я понимаю, принцип работы такой:
Юзер А открывает браузер - разрешает доступ к ауди-видео девайсам - генерируется sdp:
v=0
o=- 340617402930495797 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE video
a=msid-semantic: WMS uItU86IZVUZTr79P8INLBFpNWcp2ynCVJBI0
m=video 9 UDP/TLS/RTP/SAVPF 96 98 100 102 127 97 99 101 125
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:w0/e
a=ice-pwd:5/1ltD2SH+st+9xXo/6WdtZc
a=ice-options:trickle
генерируется список candidate, вида:
{"sdpMLineIndex":0,"candidate":"candidate:1250757143 1 udp 2122129151 192.168.32.1 49638 typ host generation 0 ufrag w0/e network-id 2","sdpMid":"video"}
{"sdpMLineIndex":0,"candidate":"candidate:90380972 1 udp 2122194687 192.168.2.1 49637 typ host generation 0 ufrag w0/e network-id 3","sdpMid":"video"}
{"sdpMLineIndex":0,"candidate":"candidate:1250757143 1 udp 2122129151 192.168.32.1 49638 typ host generation 0 ufrag w0/e network-id 2","sdpMid":"video"}
это все отправляется на сервер с определенным идентификатором (№ комнаты)
Когда заходит Юзер В ему генерируюся тоже sdp и candidate, которые так же отправляются на сервер, а в ответ сервер присылает sdp и candidate Юзера А.
Юзеру А в свою очередь отправляются данные Юзера В.
Верно ли я понимаю схему обмена идентификаторами? и дальше ряд вопросов:
1. Куда вставлять данные полученные от партнера?
2. Как запустить/остановить/отслеживать статус трансляции?
3. Нужно ли следить за соответствием кодеков или технология делает это сама?
4. В качестве сигнального сервера я использую WebSocket, после установки р2р соединения нужно ли поддержать соединение с сервером или можно разрывать и данные о sdp и candidate удалять из базы?
5. Есть ли какая то приоритетность, на уровне протокола, у "создателя" комнаты в сравнении с теми, кто подключился?
Заранее спасибо за помощь!