TURN 服务器 webrtc tcp 中继

TURN server webrtc tcp relay

我正在使用 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 正在尝试交流

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

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

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

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