TURN 服务器 webrtc tcp 中继
TURN server webrtc tcp relay
我正在使用 coturn
作为我的 TURN
服务器在 WebRTC
连接中进行中继。我想要实现的是基于 TCP
的连接和 而不是 UDP。
我尝试过的:
在 coturn 配置中,我设置了 no-udp
和 no-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
冰候选类型没有任何 relay
或 TURN
连接。这可能是失败的原因吗?
问题是,失败的原因可能是什么?
编辑:这是来自 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.
我正在使用 coturn
作为我的 TURN
服务器在 WebRTC
连接中进行中继。我想要实现的是基于 TCP
的连接和 而不是 UDP。
我尝试过的:
在 coturn 配置中,我设置了 no-udp
和 no-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
冰候选类型没有任何relay
或TURN
连接。这可能是失败的原因吗?
问题是,失败的原因可能是什么?
编辑:这是来自 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.