2017-01-15 4 views
0

В следующей статье: WebRTC Cookbook Articleсигнализации сервера Java для WebRTC

объясняется, как сервер сигнализации Java может быть реализована.

Говорят, что:

Так как клиенты обмена необходимые данные (в том числе сетевых деталей), а затем установить прямое соединение равноправных узлов ЛВС. После установления соединения сверстники больше не используют сервер.

Но, глядя на код, сервер по-прежнему необходим для передачи сообщения всем клиентам (метод sendToAll).

Может кто-нибудь объяснить мне, как прямой равный-равному связи можно с таким кодом? Я все еще не могу понять, как 2 (или более) клиента могут связывать p2p.

ответ

0

Сервер сигнализации используется для установления однорангового соединения WebRTC. Одноранговое соединение представляет собой прямое соединение между двумя парами для аудио, видео и данных.

Как правило, невозможно установить одноранговое соединение WebRTC без сервера сигнализации, поскольку большинство пользователей не имеют фиксированных IP-адресов и находятся за системами трансляции сетевых адресов (NAT) и брандмауэрами с сохранением состояния. Сервер сигнализации передает сообщения между двумя пользователями до тех пор, пока они не смогут успешно согласовать одноранговое соединение, поскольку, например, STUN обнаруживает их IP-адреса, видимые через Интернет.

После того как соединение установлено равное, сервер сигнализации не требуется. Тем не менее, вы можете разработать систему, в которой данные по-прежнему передаются по каналу сигнализации, если это лучше соответствует вашим потребностям.

Часть сигнализации WebRTC не определен. Сервер сигнализации должен предоставить некоторый метод для пользователей, чтобы выбрать, с кем они хотят общаться.

WebRTC имеет конструкцию точка-точка. Чтобы поддерживать более двух одноранговых узлов, каждая пара одноранговых узлов должна настраивать одноранговое соединение или системе нужен медиа-сервер для объединения аудио/видеопотоков.

0

Это означает, что, когда соединение p2p WebRTC запущен и работает, то сервер сигнализации действительно не используется.

Хотя, сервер сигнализации может предоставить некоторые дополнительные функции - как текстовый чат трансляции (когда один сверстники могут отправлять текстовые данные для всех других коллег). И в этом случае ваше приложение все еще может использовать сервер сигнализации для обмена дополнительными данными между одноранговыми узлами, но это не будут данные WebRTC, это будут данные, которые имеют смысл только для приложения, а не для стека WebRTC.

Таким образом, в обычном случае стек WebRTC не использует сигнализацию после установления соединения p2p (но, например, канал сигнализации CAN CAN может использоваться для повторного согласования). Но все же ваше приложение полностью свободно использует канал сигнализации для своих дополнительных данных. Фактически это полностью зависит от логики, которую вы реализовали в приложении и на сервере сигнализации.

Смежные вопросы