Реализации WebRTC и аутентификации

Итак, недавно мне понадобилось создать приложение с WebRTC для голосового видео и т. Д.

Поэтому, заглянув в некоторые библиотеки, я обнаружил, что SimpleWebRTC выглядит довольно удобно: https://github.com/andyet/SimpleWebRTC < / а>

Так что меня интересует, как реализовать сервер STUN / TURN? (Было бы здорово, если бы кто-нибудь мог объяснить различия на простом английском!) А также есть механизм аутентификации. На данный момент мое приложение связывается с моей базой данных и входит в систему в качестве пользователя и т. Д., Но сервер оглушения и поворота будет частным и никоим образом не участвует в процедуре аутентификации.

Итак, в основном:

  • Как лучше всего реализовать STUN / TURN
  • Есть ли какой-нибудь механизм аутентификации?

Обратите внимание: это гибридное приложение, поэтому я буду использовать для этого JavaScript / AngularJS. Основная причина, по которой я выбрал SimpleWebRTC.

Спасибо!


person user282190    schedule 28.03.2016    source источник


Ответы (1)


Я предлагаю вам использовать существующий сервер STUN или TURN, например coturn.

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

Серверы TURN очень ресурсоемки, потому что они ретранслируют медиа; все мультимедийные данные для вызова могут проходить через сервер TURN, поэтому важно обеспечить безопасность TURN. Вы используете серверы TURN в ситуациях, когда UDP может быть заблокирован, или для определенных типов NAT, которые вызывают проблемы.

Аутентификация для сервера TURN coturn может принимать одну из двух форм:

  1. Простая пара (логин, пароль)
  2. TURN REST API. При этом используется секрет между сервером TURN и другим объектом. Сущность выдает токены со сроком действия, и сервер TURN проверяет, что срок действия токена не истек и он был выпущен со знанием общего секрета. Он передается клиентом TURN как пара имени пользователя и пароля в формате, описанном в документации.
person mattm    schedule 28.03.2016
comment
Большое спасибо! Я изучу их и обновлю, как только у меня что-то получится :) - person user282190; 29.03.2016