我对 WebRTC 工作原理的理解有点不稳定,但我知道如果我的设备无法与另一个对等方建立直接连接(由于 NAT、防火墙等),TURN 服务器将用作中继。
我是否可以使用公共服务来确定我的设备是使用 TURN 服务器还是直接连接到另一个对等方?
你在谈论原生应用程序吗?或网络应用程序?
对于本机应用程序,解决方案可以是:
对于网络应用程序,您还可以使用:
如果您可以访问它自己的代码,只需更改链接,它们将是这样的:
iceServers = {"stun://mystunserver.com","turn://myturnserver.com {user:**** ,password=****}"};
如果您能够拨打您正在使用 stun 的电话,只需移除转牌即可。
请注意,服务器是按照它们在列表中出现的顺序使用的,因此首先击晕服务器
我希望它有帮助
编辑1:
看到这篇文章我认为这就是你的答案: 如何检查 WebRTC 是否使用中继服务器?
我知道的唯一解决方案是尝试连接到 STUN 服务器,如果它失败了,你正在使用 TURN
对于您的第二条评论,是的,您有这种统计数据,但是它们是由拥有自己的 STUN/TURN 服务器的公司发布的,例如我工作的公司,它们应该是您使用 STUN 的大约 85% 的时间(直接p2p)和约 15% 的用户使用 STUN(中继 p2p)。
我希望您的问题现在得到解答任何疑问只需再次评论我很乐意为您提供帮助