Кандидаты ICE собираются только с одного сетевого интерфейса - PullRequest
0 голосов
/ 05 октября 2018

Получен очень простой код:

<script type="text/javascript">
    pc = new window.RTCPeerConnection();

    pc.onicecandidate = function(event) {
        console.log("onicecandidate\n", event);
    }

    pc.onicegatheringstatechange = function(event) {
        console.log("onicegatheringstatechange\n", event);
    }

    dc = pc.createDataChannel("dataChannel");

    errFunc = function(err) {
        console.log("errFunc\n", err);
    }

    successCback = function() {
        console.log("setLocalDescription is a success\n");
    }

    pc.createOffer()
        .then(function(offer) { pc.setLocalDescription(offer)})
        .then(successCback)
        .catch(errFunc);

</script>

Получен Ubuntu с хромом и ДВА локальные интерфейсы Ethernet.Выполнение вышеупомянутого кода дает только 1 вызов onicecandidate и 1 вызов onicegatheringstatechange.(любые серверы STUN / TURN специально не указаны, поэтому я ожидаю только кандидатов на локальный хост, но от всех интерфейсов).ICE проверяет только один интерфейс Ethernet.

Почему?

1 Ответ

0 голосов
/ 05 октября 2018

Если у вас нет прав для getUserMedia, Chrome ограничит кандидатов ICE интерфейсом маршрута по умолчанию.Обоснование объяснено в этом проекте

...