javascript - 是 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 托管一起使用,还是我在这里做错了什么?
解决方案
在设置全新的 TURN 服务器之前,您可以尝试了解实际发生的情况:如果您使用 Wireshark 之类的应用程序在计算机上进行跟踪并过滤stun
消息,您应该能够看到浏览器发送绑定请求和分配请求转向 TURN 服务器的方法。
服务器缺少响应可能意味着服务器不可用、端口错误或防火墙阻止浏览器访问 TURN 服务器。
相反,如果凭据错误,浏览器将收到带有消息完整性属性的分配请求的 401 错误。
您还可以通过在https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/运行处理 ICE 候选人收集的 WebRTC 示例应用程序来验证 TURN URL 和凭据。
推荐阅读
- puredata - iemmatrix [mtx_*] 无法在 PureData 中创建
- python - 在 Pyspark 中添加带有坐标的列
- python - 如何替换列中的多个值?
- angular - Angular 将 SSR 与加载路线相结合
- c# - .NET Core 中的 SoapHttpClientProtocol 等效项
- jquery - 我无法切换
- c# - Wcf 服务拒绝连接
- node.js - Nodejs 响应和控制台
- javascript - 使用 Hooks 在 react-native 中动态更改单选按钮中的文本
- android - 在 Android Studio 中运行覆盖率测试时出现 StackOverflowError