首页 > 解决方案 > 是 Numb Turn 服务器不工作还是我的配置错误?

问题描述

我正在使用https://numb.viagenie.ca/提供的免费 TURN 服务器。STUN 服务器也是公开的。

我正在使用以下配置:

const iceConfiguration = {
    iceServers: [
        {
            url: 'stun:stun.stunprotocol.org'
        },
        {
            url: 'stun:stun.sipgate.net:10000'
        },
        {
            url: 'turn:numb.viagenie.ca',
            credential: 'mypassword',
            username: 'myemail'
        }
    ]
}

我创建了一个提议,将其发送到另一个对等点(不同的 NAT),然后尝试使用答案设置远程描述。在调用myConnection.setRemoteDescription(answer)时,它会无限期地挂起并且不会得到解决。此外,远程对等方可以毫无问题地设置其远程描述。这一切都适用于同一网络中的设备。所以,我猜问题出在中继服务器上。

如果是这样,我应该放弃公共 Numb 服务器并选择将 Coturn 与 DigitalOcean 托管一起使用,还是我在这里做错了什么?

标签: javascriptnetworkingwebrtcrelayturn

解决方案


在设置全新的 TURN 服务器之前,您可以尝试了解实际发生的情况:如果您使用 Wireshark 之类的应用程序在计算机上进行跟踪并过滤stun消息,您应该能够看到浏览器发送绑定请求和分配请求转向 TURN 服务器的方法。

服务器缺少响应可能意味着服务器不可用、端口错误或防火墙阻止浏览器访问 TURN 服务器。

相反,如果凭据错误,浏览器将收到带有消息完整性属性的分配请求的 401 错误。

您还可以通过在https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/运行处理 ICE 候选人收集的 WebRTC 示例应用程序来验证 TURN URL 和凭据。


推荐阅读