У меня есть многостороннее приложение 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 моего друга, но мы по-прежнему не можем передавать друг другу потоки.
iceServers
. См. также: developer.mozilla.org/en-US /docs/Web/API/RTCIceServer/ - person Brad   schedule 23.01.2019