首页 > 解决方案 > 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 正在尝试交流

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

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

标签: tcpwebrtcvoipsdpcoturn

解决方案


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

这个原因是假定 TURN 服务器位于具有工作 UDP 连接的不受限制的网络上。由于 TCP 对实时流量有不好的特性,它应该只是最后的后备方案,并且在双方都没有 UDP 连接的极端情况下,他们可以通过 TCP 连接到 TURN 服务器,TURN 服务器之间的流量仍然是UDP。


推荐阅读