Создаю приватный видео чат. Необходимо что бы пользователь заходил в чат по сгенерированной ссылке и сразу пытался установить соединение с собеседником без нажатия каких либо кнопок, если собеседник ещё не вошёл, то он видит пока только окошко со своим маленьким видео, как только собеседник вошёл они должны увидеть друг друга.
На всех примерах что нашёл, всегда идёт звонок по ID, без ожидания
rework: делаете запрос getUserMedia, устанавливаете соединение с сервером, отправляете на него id комнаты (при разрыве соединения - удаляете). когда второй подключается - на сервере находится этот id, устанавливаете уже прямое соединение.
вообще мне нужно, что бы в любой момент любой из пользователей мог выйти или закрыть окно браузера, но когда он открывает его снова (если он остался авторизован на сайте), то соединение автоматически должно восстанавливаться.
и в чем проблема? при закрытии сокет обрывается, на сервере участник вылетает из комнаты. по возвращению как и при первом присоединении проверяется что комната полная и тогда участники устанавливают соединение как и первый раз.
Сейчас я в качестве сервера использую PeerJS iceServers, а возможно ли все это сделать без сервера, а что бы соединение устанавливалось напрямую между двумя клиентами, т.к. мне нет необходимости устанавливать соединения более чем с двумя пользователями одновременно?
rework: ICE-это протокол для обхода NAT. en.wikipedia.org/wiki/Interactive_Connectivity_Est...
stun и turn серверы собирают дополнительные ip-адреса-кандидаты.
эти кандидаты нужно передать обоим участникам для того, чтобы они знали, куда пробовать цепляться.
сервер тут выступает посредником, передавая уже сформированные по протоколу браузером сообщения.
rework: не мог бы - так как не использовал. протокол очень простой (почитайте вывод консоли в https://apprtc.appspot.com/) и серверную часть можно легко написать самостоятельно - в отличии от клиентской там нет различий между браузерами. по сути все чем занимается сервер - это передача уже готовых сообщений между участниками.
ну либо попробуйте еще www.rtcmulticonnection.org - может поможет больше, чем peerjs
что-то типа этого. Только в исходниках не разберусь там.
Я сейчас использую библиотеку PeerJS, нужна она вообще или лучше без неё обойтись?
Сейчас я как делаю. Когда пользователь заходит в комнату, запускается тайминтервал по которому пытеается установить соединение