是 Numb Turn 服务器不工作还是我的配置有误?

Is Numb Turn server not working or are my configurations wrong?

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

我正在使用以下配置:

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) 后,它会无限期地挂起并且不会得到解决。此外,远程对等点可以毫无问题地设置其远程描述。这一切都适用于同一网络中的设备。所以,我猜是中继服务器的问题。

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

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

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

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

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

似乎 Numb TURN 服务器实际上并没有工作。不知道为什么。但它们确实出现在 WebRTC trickle ICE 示例应用程序中。