PeerConnection: совершить звонок в локальной сети
Я играю с WebRTC, и я хотел бы добиться:
Пользователь1 открывает браузер в 192.168.xx
Пользователь2 открывает браузер на 192.168.xx той же странице
Пользователь 1 нажимает кнопку вызова, пользователь2 отображает поток на своем экране.
Я создал сервер сигнализации с node и socket.io, и я могу обмениваться сообщениями между пользователями, используя комнаты socket.io.
Шаги, которые я выполняю:
- Получить пользовательские медиа
- Создать peerconnection1 - без ледовых серверов
- добавить поток на peerconnection
- создать предложение
- отправить предложение через сокеты
- Получите предложение и создайте peerconnection2 - без ледовых серверов
- отправив ответ
Я также поместил некоторые записи в "onicecandidate" и "onaddstream", чтобы увидеть, когда они вызываются, и в "onaddstream" я создаю видеоэлемент.
Когда я нажимаю кнопку вызова, на другом компьютере я вижу, что элемент видео становится черным, но я не вижу ни видео, ни звука. Конечно, я пропускаю некоторые жизненно важные шаги,
Может кто-нибудь сказать мне шаги, которые я должен сделать, чтобы сделать правильный вызов и обменяться всеми необходимыми данными для отображения потока на другой стороне?
большое спасибо
2 ответа
A STUN server is used to get an external network address.
TURN servers are used to relay traffic if direct (peer to peer) connection fails.
увидеть это изображение описывает, как работает peerconnection
У вас все еще должен быть хотя бы сервер оглушения, на который ссылается один из ваших серверов ICE. Я бы использовал 'stun:stun.l.google.com:19302' || 'stun:23.21.150.121', даже если технически вам это не нужно.
Но если у вас нет серверов ICE, вам не нужно беспокоиться о сборе кандидатов. Пара вещей, которые могут случиться.
- Убедитесь, что вы добавляете свои потоки к каждому соединению ПЕРЕД созданием вашего предложения и созданием вашего ответа, в нем говорится, что вы получаете пользовательский носитель, но не добавляете его в одноранговое соединение.
- Вы не устанавливаете свои локальные и удаленные описания
- Предлагающий компьютер должен установить свое локальное описание при создании
- Автоответчик должен установить свое удаленное описание с описанием предложения и установить локальное описание с тем, которое они создают.
- Убедитесь, что вы отправляете ответ sdp на исходный компьютер предложения, и этот компьютер предложения устанавливает его в качестве удаленного описания.
Потоки НЕ БУДУТ отправлять друг другу, если вы не добавите необходимые потоки, не создадите описания и не установите соответствующие локальные и удаленные описания.
Если это не сработает, вы, вероятно, должны опубликовать свой код для страницы.