как построить многопользовательский видео чат веб-приложение с помощью webRTC, узел.js и сокет.io

Я пытаюсь сделать веб-приложение, которое поддерживает многопользовательский видеочат. я прочитал статью о webrtc на тему " Начало работы с webrtc" (http://www.html5rocks.com/en/tutorials/webrtc/basics/) и сделал некоторые демо на codelab. но я все еще не знаю, как сделать это 3-сторонним конференц-звонком.я не очень много знаю о node.js и сокет.Ио. просто начал изучать их, потому что я пытаюсь построить это видео веб-приложение.

Итак, мой вопрос, какая часть webrtc или гнездо.io определяет, что более 2 пользователей могут присоединиться к вызову? или какой-нибудь ресурс, к которому вы меня направите?

спасибо заранее.

4 ответов


Я бы сказал, что здесь есть две отдельные вещи. WebRTC нужна сигнализация для настройки одноранговой связи между двумя узлами. Я думаю, что вы на правильном пути при использовании Node.js и сокет.JS для этого.

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

Это означает, что вы реализуете функциональность как настроить meetingroom, откройте доступные meetingrooms, присоединяясь meetingrooms etc. Когда собрание трех частей завершено и запущено, каждый узел будет иметь два одноранговых соединения, по одному с каждым из других узлов.


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

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

здесь некоторые детали о сети сеткиhttp://en.wikipedia.org/wiki/Mesh_networking


Я тоже посмотрел на эти протоколы, не уверен, какой узел.js и розетки.io может сделать еще, но я думаю, что это большая ошибка, что бы они ни делали, потому что все, что вам нужно сделать, это создать одно место, где несколько пользователей разместят свои изображения веб-камеры, а затем каждый сможет получить доступ к месту отдельно для просмотра всех разговоров. Это должно быть быстро, потому что не проблема с видео, но если сигнал идет медленно, то его не будет понятно. Я бы попробовал что-нибудь другое. Интересно, почему? они не могли решить такой простой концепции мульти-конференций.

Я создал пародию на мульти-чат на своем сайте, я не могу показать вам прямо сейчас, но в основном я сохраняю кадры каждые 5 секунд видео, а затем сохраняю их (перезаписываю) изображение, сохраненное в центральной папке. Когда кто-то входит в систему, они видят все веб-камеры онлайн (сделано с PHP). Я не знаю, помогает ли это, но это работает, и это похоже.


для n пользователей, вы должны использовать медиа-стример, как Kurento (http://www.kurento.org/)

после этого вы можете построить ваше собственное multi разрешение WebRTC потребителей как:https://webrtc-chat.com/ (построенный поверх Kurento)