Отсутствует кандидат srflx ice в Windows Server 2012 R2 - PullRequest
0 голосов
/ 21 января 2020

У меня проблемы с приложением webrt c, которое прекрасно работает на всех компьютерах, которые я тестирую, даже на виртуальных машинах, но не работает на Windows Server 2012 R2. Я отследил его до пропущенного кандидата Server Reflexive (srflx) на сервере.

С помощью этого фрагмента тестового кода (запускаемого на консоли chrome dev):

var rtc = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
var r = new rtc({ iceServers: [{ urls: "stun:stun.l.google.com:19302" }] }, {});
r.onicecandidate = function (a) { console.log('candidate:', JSON.stringify(a.candidate)); };
r.onicecandidateerror = function(a) { console.log('error:', a); }
r.createDataChannel("");
r.createOffer().then(x);

function x(a) {
    r.setLocalDescription(a, function () {}, function () {});
}

Вкл. мой P C, он показывает что-то вроде этого:

candidate: {"candidate":"candidate:1221703924 1 udp 2113937151 a044b6a7-4d08-XXXX-XXXX-bc858326ac0f.local 59233 typ host generation 0 ufrag IYpO network-cost 999","sdpMid":"0","sdpMLineIndex":0}
candidate: {"candidate":"candidate:842163049 1 udp 1677729535 111.222.333.444 59233 typ srflx raddr 0.0.0.0 rport 0 generation 0 ufrag IYpO network-cost 999","sdpMid":"0","sdpMLineIndex":0}
candidate: null

Но на сервере это выглядит так:

candidate: {"candidate":"candidate:3704228534 1 udp 2113937151 e277d76d-XXXX-XXXX-9471-3461192326ad.local 50857 typ host generation 0 ufrag WWDW network-cost 999","sdpMid":"0","sdpMLineIndex":0}
candidate: null

Что может быть причиной отсутствия кандидата srflx? Использование сервера поворотов с учетными данными вместо stun делает то же самое. Также попытался отключить windows межсетевой экран.

1 Ответ

0 голосов
/ 21 января 2020

Это обычно означает, что UDP заблокирован на этом компьютере (обратный вызов onicecandidateerror может дать более глубокое понимание).

https://bloggeek.me/turn-public-ip-address/ имеет довольно хорошее резюме о том, почему вам нужно включить / TCP и TURN / TLS в дополнение к TURN / UDP.

...