【问题标题】:TURN server webrtc tcp relayTURN 服务器 webrtc tcp 中继
【发布时间】:2021-07-13 16:23:43
【问题描述】:

我使用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 documentation 时,我看到TCP ice 候选类型没有任何relayTURN 连接。这会是失败的原因吗?

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

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

【问题讨论】:

    标签: tcp webrtc voip sdp coturn


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多