2

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

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: "************"
        }
    ]
}
});
4

2 回答 2

0

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

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

检查你得到这个

于 2021-09-12T14:05:30.240 回答
0

我遇到过同样的问题。

我不确定这是否与那些特定的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 不仅仅适用于 iOS 的 chrome

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

于 2021-09-10T11:14:39.577 回答