【问题标题】:WebRTC "ICE Failed" , errorWebRTC“ICE 失败”,错误
【发布时间】:2016-05-25 13:19:39
【问题描述】:

所以,我正在尝试使用 peer.js 构建一个 webrtc video chat 网络应用程序。到目前为止一切顺利,一切似乎都正常。 当我在我的私人服务器上运行我的应用程序时,问题就开始了。

每次我尝试接听或拨打电话时,视频都会开始播放几秒钟,但出现黑屏,然后我收到 ICE Failed 错误并断开连接。

如果两个用户共享相同的 IP 地址,则不会发生这种情况。 如果用户共享相同的 ip,视频聊天可以正常工作,完全没有问题。

这可能是什么问题?

更新

我添加了 stun 并打开对等服务器,但我再次遇到同样的错误

peer = new Peer({ key: peerApiKey, debug: 3, config: {'iceServers': [
            { url: 'stun:stun.l.google.com:19302' },
            { url: 'stun:stun1.l.google.com:19302' },
            { url: 'turn:numb.viagenie.ca:3478', credential: 'muazkh', username:'webrtc@live.com' },
            { url: 'turn:numb.viagenie.ca', credential: 'muazkh', username:'webrtc@live.com' },
            { url: 'turn:192.158.29.39:3478?transport=udp', credential: 'JZEOEt2V3Qb0y27GRntt2u2PAYA=', username:'28224511:1379330808' },
            { url: 'turn:192.158.29.39:3478?transport=tcp', credential: 'JZEOEt2V3Qb0y27GRntt2u2PAYA=', username:'28224511:1379330808' }
        ]}});

【问题讨论】:

    标签: webrtc peerjs ice-protocol


    【解决方案1】:
    • 您需要设置一个有效的 STUN 服务器(可能 peer.js 的默认设置不起作用)。这将解决大约 80% 的问题。
    • 在某些情况下,还需要 TURN 服务来完成调用。
    • 在某些情况下,即使 TURN 也是不够的(例如,如果 UDP 两端都被阻止),在这些情况下,您需要一个服务器来路由媒体(通过 TCP/TURN)。

    【讨论】:

    • 感谢您的回答。我添加了 stun 和 turn server 但我再次遇到同样的错误
    • 你确定那些 TURN 服务器真的在工作吗?您不应该指望免费/公共 TURN 服务。TURN 必须路由媒体,如果有很多用户使用它,这可能会非常昂贵,而且据我所知,没有人免费提供此服务。
    • 实际上它在一段时间后确实起作用了(我的服务器出现问题)。我现在的问题是它只能用 wifi 拨打电话或接听电话,而不是 3g/4g 我正在尝试要弄清楚这一点。感谢您的帮助!
    猜你喜欢
    • 2018-04-15
    • 1970-01-01
    • 2019-07-19
    • 2015-07-02
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多