TURN服务器webrtc tcp中继



我使用coturn作为TURN服务器,以便在WebRTC连接中进行中继。我想要实现的是基于TCP的连接,而不是基于UDP的连接。

我尝试过的:在coturn配置中,我已将no-udpno-udp-relay设置为仅强制基于TCP的连接。

# Uncomment if no UDP client listener is desired.
# By default UDP client listener is always started.
#
no-udp
# Uncomment if no UDP relay endpoints are allowed.
# By default UDP relay endpoints are enabled (like in RFC 5766).
#
no-udp-relay

每当我尝试建立连接时,我都会得到turn server may be broken

可能有用的细节,A和B正在尝试与通信

  • 在机器A上,我得到3个UDP候选和3个TCP候选
  • 在机器B上,我只得到3个UDP候选
  • 两者都在使用Firefox当我阅读firefox文档时,我发现TCPice候选者类型没有任何relayTURN连接。这会是失败的原因吗

问题是,失败的原因是什么?

编辑:这是Chromium页面的最新一期https://bugs.chromium.org/p/chromium/issues/detail?id=1201700#c5

即使存在TURN扩展以获得TCP分配,WebRTC也不支持TURN TCP中继,只支持UDP。但是,它支持使用TCP或TLS连接TURN服务器。

这是因为TURN服务器被假定在具有工作UDP连接的不受限制的网络上。由于TCP对实时流量的属性不好,因此它应该只是最后的后备方案,并且在两个对等端都缺乏UDP连接的极端情况下,它们可以使用TCP连接到TURN服务器,TURN服务器之间的流量仍然是UDP。

相关内容

  • 没有找到相关文章

最新更新