RTCPeerConnection和createDataChannel不适用于Edge



我一直在开发一个应用程序,当一个人登录到一个帐户时,设备的IP地址存储在后端和本地存储中。然后,当一个人从另一个浏览器登录到同一个帐户时,它会显示一个带有最后登录IP地址的弹出窗口。它似乎适用于chrome和Mozilla,但不适用于边缘浏览器。它总是返回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,但不确定如何使用它

Edge v18浏览器尚未完全支持WebRTC对等连接。你可以在我可以使用RTCPeerConnection吗?

在边缘浏览器中似乎没有办法真正获得私有ip,所以不得不使用第三方api来获得公共ip并使用它。

相关内容

  • 没有找到相关文章

最新更新