2013-12-15 6 views
5

Все ли работает работа webRTC на сервере webRTC? Например, в rtc data channel from simpl.info вы можете просто скопировать html для текстового поля ввода и текстового поля, а также JavaScript и скопировать его на локальный компьютер, и он отлично работает. Когда JavaScript file проверяется ближе, существует множество вызовов, которые поступают из библиотек webRTC, не имея их на моем локальном компьютере. И.Е.Как работает webRTC?

window.localPeerConnection = new webkitRTCPeerConnection(servers, 
{optional: [{RtpDataChannels: true}]}); 

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

Я наблюдал за webRTC intro video, он просматривает множество функций, но это не объясняет этот конкретный вопрос. Другим аспектом, который меня смущает, является тот факт, что когда вы идете к официальному webrtc.org getting started tutorial, он дает пошаговые инструкции для загрузки библиотек webRTC, которые я сделал. Но какова цель этого, если вам не нужно создавать приложения webRTC, а работа выполняется на внешнем сервере?

Я видел еще один вопрос, где название почти идентично, how does webRTC work?, но после прочтения принятого ответа и на вопрос его другой, О.П. хотел бы знать, как одноранговая связь работала, и они объяснили ему ICE работы и TURN серверы, которые я как-то понял из вступительного видео, мой вопрос заключается в том, что эти серверы очереди, ICE и т. Д. Размещаются у Google или могут размещать их локально. И если это что-то Google хосты и т. Д., Разве это не так сложно, как быть локальным?

ответ

4

WebRTC - это очень сложная синергия многих компонентов и протоколов. К счастью, с точки зрения webdeveloper все это инкапсулировано тремя основными API JavaScript: getUserMedia, RTCPeerConnection и RTCDataChannel. Эти API определены W3C и являются частью браузера, поддерживающего WebRTC. Вы можете найти обзор текущей поддержки здесь:

Это означает, что вы не должны «загрузить» WebRTC использовать его, если браузер поддерживает его, он уже существует.

Чтобы ответить на второй вопрос о серверах STUN и TURN: имеются общедоступные серверы. Однако это в основном для целей тестирования. Вы можете развернуть свой собственный сервер TURN, rfc5766-turn-server такой, и документация найдена here

1

Если вас беспокоит очередь сервера, то вы можете создать свой собственный сервер очереди, используя rfc5766. Я использовал его для создания собственного сервера очереди, и он работал нормально.

3

Поскольку WebRTC использует одноранговую сеть, она будет работать нормально, если вы сделаете это в своей локальной сети, поскольку идентичность известные участники, и WebRTC знает, как направлять информацию. Но это не работает через Интернет, поскольку люди используют маршрутизаторы и брандмауэры и т. Д.

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

Я написал detailed tutorial о том, как создать простое приложение WebRTC, в котором используются веб-узлы. В нем также объясняется, как настроить собственный сервер websocket. Надеюсь это поможет!

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