RTCPeerConnection和createDataChannel不工作的边缘

问题描述 投票:1回答:2

我一直在这里当一个人进入一个帐户,该设备的IP地址存储在后端和本地存储的应用程序。然后,当一个人登录到从另一个浏览器或使同一个帐户,它会显示与上次登录IP地址的弹出窗口。这似乎在Chrome和Mozilla但在边缘的浏览器不能正常工作运行。它总是因为它没有进入pc.createDataChannel后的代码返回null。

代码段如下所示。

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,但不知道如何准确使用它也试过。

reactjs redux ip-address rtcpeerconnection
2个回答
0
投票

的WebRTC对等网络连接尚未完全支持边缘V18浏览器呢。您可以检查您的浏览器在Can I use RTCPeerConnection ?兼容


0
投票

这似乎是没有办法真正得到在边浏览器中的私有IP,所以不得不使用第三方API来获取公网IP和使用。

© www.soinside.com 2019 - 2024. All rights reserved.