RTCPeerConnection и createDataChannel не работают для Edge - PullRequest
0 голосов
/ 05 февраля 2019

Я работал над приложением, в котором, когда человек входит в учетную запись, IP-адрес устройства сохраняется в серверной и локальной памяти.Затем, когда человек входит в ту же учетную запись из другого браузера или около того, он покажет всплывающее окно с последним IP-адресом входа.Кажется, он работает на Chrome и Mozilla, но не работает в браузере Edge.Он всегда возвращает ноль, потому что он не вводит код после pc.createDataChannel.

Фрагмент кода, как показано ниже.

const getIpAddress = state => {
    window.RTCPeerConnection = window.RTCPeerConnection || 
window.mozRTCPeerConnection || window.webkitRTCPeerConnection || false;
let ip = false;
if (window.RTCPeerConnection) {
    ip = [];
    var pc = new RTCPeerConnection({ iceServers: [] }), noop = function 
() {
    };
    pc.createDataChannel('');
    pc.createOffer(pc.setLocalDescription.bind(pc), noop);
    pc.onicecandidate = function (event) {
        if (event && event.candidate && event.candidate.candidate) {
            var s = event.candidate.candidate.split('\n');
            ip.push(s[0].split(' ')[4]);
            localStorage.setItem('ipV4Address', ip[0]);
        }
    };
}
return state;
};

Я также пытался использовать адаптер js, но не уверен, как именно использоватьэто.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Кажется, что на самом деле нет способа получить приватный ip в граничном браузере, поэтому пришлось использовать сторонний api, чтобы получить публичный ip и использовать его.

0 голосов
/ 05 февраля 2019

WebRTC Одноранговые соединения еще не полностью поддерживаются в браузере Edge v18.Вы можете проверить совместимость вашего браузера на Могу ли я использовать RTCPeerConnection?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...