简单对端异网调用问题

Simple peer different network calling Issue

我正在为我的视频通话 Web 应用程序使用简单的对等点。当我打电话给同一个网络中的人时,视频通话工作正常。但是在不同的网络中,它不起作用。我还将 ICE 服务器(stun/turn)添加到简单的对等点。尽管如此,同样的问题仍在发生,任何人都可以帮助我。我在控制台中遇到了这个问题

Error: Connection failed. at h (index.js:17)at f.value (index.js:654) at RTCPeerConnection.t._pc.onconnectionstatechange (index.js:119)

const peer = new Peer({
  initiator: true,
  trickle: false,
  stream,
  config: {

    iceServers: [
        {
            urls: "stun:numb.viagenie.ca",
            username: "************",
            credential: "************"
        },
        {
            urls: "turn:numb.viagenie.ca",
            username: "************",
            credential: "************"
        }
    ]
}
});

我遇到了同样的问题。

我不确定这是否与那些特定的 iceServers 有关,但我用这个替换它们就可以了

iceServers: [
    { urls: 'stun:stun.l.google.com:19302' },
    { urls: 'stun:stun1.l.google.com:19302' },
    { urls: 'stun:stun2.l.google.com:19302' },
    { urls: 'stun:stun3.l.google.com:19302' },
    { urls: 'stun:stun4.l.google.com:19302' },
    {
      url: 'turn:turn.bistri.com:80',
      credential: 'homeo',
      username: 'homeo',
    },
    {
      url: 'turn:turn.anyfirewall.com:443?transport=tcp',
      credential: 'webrtc',
      username: 'webrtc',
    },

一切正常,但现在我的问题是 Safari 无法正常工作 chrome iOS

如果有人知道如何处理这种兼容性,请与我联系! :D

我的问题是 stun/turn server.we 可以检查服务器的状态 https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

如果你测试一个 STUN 服务器,如果你能收集到一个类型为“srflx”的候选者,它就可以工作。如果您测试 TURN 服务器,如果您可以收集类型为“relay”的候选人,它就会工作。

检查你得到这个