Reactjs RTPeerConnection和createDataChannel不适用于边缘

Reactjs RTPeerConnection和createDataChannel不适用于边缘,reactjs,redux,ip-address,rtcpeerconnection,Reactjs,Redux,Ip Address,Rtcpeerconnection,我一直在开发一个应用程序,当一个人登录一个帐户时,设备的IP地址存储在后端和本地存储中。然后,当一个人从其他浏览器或其他浏览器登录到同一帐户时,它将显示一个带有上次登录IP地址的弹出窗口。它似乎可以在chrome和Mozilla上运行,但在edge浏览器中不起作用。它总是返回null,因为它没有在pc.createDataChannel之后输入代码 代码片段如下所示 const getIpAddress = state => { window.RTCPeerConnection =

我一直在开发一个应用程序,当一个人登录一个帐户时,设备的IP地址存储在后端和本地存储中。然后,当一个人从其他浏览器或其他浏览器登录到同一帐户时,它将显示一个带有上次登录IP地址的弹出窗口。它似乎可以在chrome和Mozilla上运行,但在edge浏览器中不起作用。它总是返回null,因为它没有在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,但不确定如何正确使用它。

WebRTC对等连接在Edge v18浏览器上还不完全支持。您可以在

上检查您的浏览器是否兼容。似乎没有办法在edge浏览器中实际获取私有ip,因此必须使用第三方api获取公共ip并使用它。

我通过另一个线程,他们建议使用适配器js,即webrtc pollyfill。你知道如何使用它来绕过边缘支持吗?我还没有使用过
adapter.js
,你可以试试什么是第三方库来获得公共ip?