Я пытался создать сервер для интеграции собственных API-интерфейсов webrtc в собственное приложение, но я не уверен, как должен быть настроен сервер, например ICE / STUN / TURN, сигнализация, медиа-сервер и т. Д. Насколько мне известно, это проект с открытым исходным кодом: https://github.com/priologic/easyrtc Кто-нибудь может дать рекомендации? Спасибо
2 ответа
В инфраструктуре WebRTC задействовано несколько вещей. Клиентская часть написана на JavaScript и работает в браузере.
Но, как вы сказали, это серверная часть. Во-первых, это сервер ICE / STUN / TURN, который используется клиентом для обнаружения своего общедоступного IP-адреса, если он расположен за NAT. В зависимости от ваших требований может не потребоваться создание / развертывание собственного сервера, но используйте уже существующий общедоступный (и бесплатный) - вот список. Вы также можете развернуть программу с открытым исходным кодом, например Stuntman.
Затем идет сигнальная часть, используемая двумя клиентами для согласования и запуска сеанса webrtc. Здесь нет стандарта, и у вас есть несколько вариантов.
Вы можете использовать сервер XMPP с расширением Jingle. Вы можете развернуть существующий сервер XMPP, например OpenFire или Tigase
Вы также можете использовать SIP, протокол, который гораздо чаще встречается для VoIP. Вы можете использовать JAIN-SIP или SIP Servlets.
Или вы можете разработать свой собственный протокол сигнализации, используя что-то вроде веб-сокетов.
Параметры на стороне сервера, которые я вам предлагал, были основаны на Java, но вы можете найти аналогичные для других инфраструктур.
STUN / TURN не требуется. Используйте общедоступные (не совсем стабильные) или получите машину Ubuntu и установите из источника: https : //code.google.com/p/rfc5766-turn-server/
Сигнализация тривиальна. Вы просто пересылаете сообщения между одноранговыми узлами. Просто создайте простой чат-сервер.
Медиа-сервер - это совсем другая история, и он требует сложной конфигурации клиент-сервер.
Похожие вопросы
Новые вопросы
webrtc
WebRTC - это бесплатный открытый проект, предоставляющий браузерам и мобильным приложениям возможности связи в реальном времени (RTC) (потоковая передача аудио, видео и двоичных данных) через простые API и общий набор протоколов. Теги для операционной среды могут быть полезны, например, [node.js] или [actjs] или [ios], а также конкретный браузер, например [Fire Fox]. Вопросы, касающиеся использования протокола описания сеанса [sdp]. Используйте [ortc] для объекта RTC.