Как транслировать аудио через WebRTC через NAT? - PullRequest
0 голосов
/ 23 января 2019

У меня есть многостороннее приложение WebRTC, которое работает как на локальном, так и на локальном туннеле ngrok.io.Тем не менее, когда я пытаюсь протестировать его с моим другом, который подключен через маршрутизатор с их стороны, я могу видеть обмен предложением / ответом, а также обмен кандидатами ICE, но звук не передается.

После первой проблемы я провел небольшое исследование и узнал, что вам необходим сервер TURN для прохождения через NAT маршрутизатора.Я использую общедоступный сервер TURN, который, как я подтвердил, работает в https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

var configuration = { 
    "iceServers": [{ "url": "stun:stun2.1.google.com:19302" }], 
     url: 'turn:192.158.29.39:3478?transport=udp', 
     credential: 'JZEOEt2V3Qb0y27GRntt2u2PAYA=', 
     username: '28224511:1379330808' 
}; 

yourConn = new webkitRTCPeerConnection(configuration); 

yourConn2 = new webkitRTCPeerConnection(configuration); 

yourConn3 = new webkitRTCPeerConnection(configuration);

Звуковые пакеты должны быть направлены через этот сервер TURN и через NAT моего друга, но мы все еще не можем транслироватьдруг другу.

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Ваши учетные данные сервера поворота взяты из https://www.html5rocks.com/en/tutorials/webrtc/infrastructure/ и срок их действия истек в 2013 году. Если вы использовали https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/, это должно было бы сказать вам, что это не работает - я был бы довольно удивлен, если он дал вам эстафету кандидатов.

Запустите свой собственный сервер.

0 голосов
/ 25 января 2019

Вы должны изменить конфигурацию:

var configuration = { 
  "iceServers": [
    { "url": "stun:stun2.1.google.com:19302" },
    {
      "url": "turn:192.158.29.39:3478?transport=udp", 
      "credential": "yourpassword", 
      "username": "yourusename" 
    }
  ], 

};

...