2016-02-17 2 views
0

Итак, я пытаюсь разработать веб-приложение, которое имеет возможность совершать видеозвонки между пользователями веб-приложения. Теоретически, Caller A может искать в каталоге в веб-приложении, см., Что Caller B находится в режиме онлайн и совершает видеозвонок. Мой вопрос: как получить IP-номер и номер порта Caller B? Я понимаю, что эту информацию нужно обменивать с помощью сигнализации, но как Caller A когда-либо получает свою информацию в Caller B, если они не знают, что такое номер или номер порта Caller B?Web RTC Peer Discovery

+0

В webrtc они обнаруживают друг друга через кандидатов ICE, поэтому в начале вам нужен сервер сигнализации. – mido

ответ

2

Одноранговые сети обнаруживают друг друга через протокол ICE. Это является частью обычной установки соединения WebRTC. ICE имеет методы для обнаружения необходимой информации, такой как IP и порты.

Что нужно знать о том, чтобы получить ICE кандидатов от одного пэра к другому. Вы делаете это через ваш сигнальный сервер. Peer A обнаруживает кандидатов ICE и наведет их вам на объект RTCPeerConnection; вы принимаете этих кандидатов, отправляете их на свой сервер, сервер отправляет их в одноранговую сеть B, где они должны быть включены в равный B RTCPeerConnection; и все это в обратном направлении. После того, как были обменены достаточные кандидаты ICE, и была обнаружена соответствующая возможность, два партнера установили бы прямое соединение.

Реализация сервера сигнализации предоставляется вам и вашим конкретным потребностям.

+0

Спасибо за очищение, что для меня, получение кандидатов в другую сторону было частью, которая не имела смысла для меня концептуально. – user3704351

0

Я согласен с комментарием выше, что ICE имеет решающее значение для обмена медиа-потоками, но я предполагаю, что вы задаете этот вопрос с точки зрения сигнализации.

Одним из решений для этого является простая возможность присутствия, построенная на MQTT, и функция, называемая сохраненными сообщениями. В принципе, каждый клиент публикует документ в теме MQTT в виде сохраненного сообщения, которое получают подписчики. Сохраненные сообщения остаются в брокере до тех пор, пока клиент не отключится, или когда клиент отключится от брокера (используя сообщение MQTT Last Will and Testament). Сохраненное сообщение содержит информацию, которая может быть использована для подключения к другим одноранговым узлам (например, имена имен одноранговых узлов). Вы можете увидеть его здесь: https://angular-rtcomm.wasdev.developer.ibm.com.

Все это реализовано с открытым исходным кодом. Если вы хотите получить демонстрационную версию с нуля, вы можете сделать это с помощью Node.js с брокером Mosca MQTT и открытым исходным кодом Rtcomm. Заходит около 20 минут, чтобы настроить, если вы знакомы с узлом. Инструкции можно найти по ссылке выше.

+0

Спасибо, я посмотрю на это. – user3704351