Реализация собственного сервера STUN/TURN для приложения WebRTC
Я работаю над приложением webrtc и должен реализовать следующий сервер поворота.
https://code.google.com/p/rfc5766-turn-server/
Я следую этому руководству.
http://www.dialogic.com/den/developer_forums/f/71/t/10238.aspx
и он говорит, чтобы ссылаться на сервер поворота следующим образом, в коде javascript, где создается RTCPeerConnection.
var pc_config = {"iceServers": [{"url": "stun:stun.l.google.com:19302"},
{"url":"turn:my_username@<turn_server_ip_address>", "credential":"my_password"}]};
pc_new = new webkitRTCPeerConnection(pc_config);
Я немного смущен, почему мы ссылаемся на публичный сервер оглушения Google. Я думал, что сервер поворота RFC5766 оглушен внутри него.
Это RFC5766 только включить сервер? и не оглушить сервер? Не можем ли мы реализовать наш собственный сервер STUN, а использовать тот, который предоставлен Google?
извините за такой наивный вопрос. Я новичок в WebRTC.
спасибо.
2 ответов
TURN это расширение оглушения, поэтому TURN server также имеет функции оглушения.
https://code.google.com/p/rfc5766-turn-server/ работает также как оглушение, поэтому вы можете попробовать написать что-то вроде этого:
var pc_config = {"iceServers": [{"url":"turn:my_username@<turn_server_ip_address>", "credential":"my_password"}]};
pc_new = new webkitRTCPeerConnection(pc_config);
просто добавляя к ответу Игоря,
coturn
форк rfc5766-turn-server
, основные функции одинаковы, с дополнительными функциями и к которым добавляются новые функции, поэтому я бы посоветовал вам использовать его вместо этого.
авторскими словами:
этот проект развился из проекта rfc5766-turn-server (https://code.google.com/p/rfc5766-turn-server/). Есть много новых расширенных спецификаций TURN, которые выходят далеко за рамки оригинальный документ RFC 5766. Этот проект берет код rfc5766-turn-server в качестве стартера и добавляет к нему новые расширенные функции.
что касается установки, то ее легко установить на Linux-машинах, а не в других ОС.
простой способ:
sudo apt-get install coturn
если вы скажете Нет, я хочу последнюю передовую, вы можете скачать исходный код из их загрузки страницы в установите его сами, например:
sudo -i # ignore if you already in admin mode
apt-get update && apt-get install libssl-dev libevent-dev libhiredis-dev make -y # install the dependencies
wget -O turn.tar.gz http://turnserver.open-sys.org/downloads/v4.5.0.6/turnserver-4.5.0.6.tar.gz # Download the source tar
tar -zxvf turn.tar.gz # unzip
cd turnserver-*
./configure
make && make install
для запустив поворот, желательно запустить его как демон, и вы можете использовать это wiki для справки для его настройки.
пример команды для запуска TURN server:
sudo turnserver -a -o -v -n --no-dtls --no-tls -u test:test -r "someRealm"
описание:
- - a-используйте механизм долгосрочных учетных данных
- - o-запустить серверный процесс как daemon
- - v - "умеренный" подробный режим.
- - n - нет файла конфигурации
- --no-dtls - не запускать Протокол DTLS слушателей
- --no-tls-не запускать прослушиватели TLS
- -U - учетные данные пользователя для использования
- - R-область по умолчанию для использования, необходимо включить REST API
теперь вы можете использовать сервер TURN в приложении WebRTC как:
var peerConnectionConfig = {
iceServers: [{
urls: YOUR_IP:3478,
username: 'test',
password: 'test'
}]
}