我是 WebRTC 新手。
我了解了回合服务器。
下面的内容用于为 webrtc 应用程序配置基于 TCP 的 Turn 服务器。
webrtc 应用程序中的转向服务器配置示例:-
{
url: ‘turn:192.158.29.39:3478?transport=tcp’,
credential: ‘JZEOEt2V3Qb0y27GRntt2u2PAYA=’,
username: ‘28224511:1379330808′
}
?transport=tcp 的含义是它像他们所说的那样在 TCP 协议上工作。
我的问题是,
Turn 服务器以 TCP 方式工作,仅用于在 TCP 上工作的 Turn 服务器之间建立连接,或通过使用 TCP 协议的 Turn 服务器传输 WebRTC 媒体。 TCP 数据包用于什么目的?
是否可以通过 TCP 数据包传输 WebRTC 媒体?
不建议通过 TCP 强制 WebRTC 媒体,这只是严格防火墙的后备选项。
如果您指定?transport=tcp
在 TURN url 中,WebRTC 客户端将通过 TCP 连接到 TURN 服务器。
客户端将通过 TCP 发送 STUN 请求来分配中继候选(据我所知,目前 chrome/firefox 仅请求 UDP 中继候选)。
要通过 TURN 服务器强制执行严格的 TCP:
- 仅使用 TURN url
?transport=tcp
- Specify
iceTransportPolicy:"relay"
,这样所有媒体都会通过 TURN 流动
在peerConnections之间交换中继候选(udp)后,媒体路径将如下所示
P1 P1TURN P2TURN P2
如果 P1TURN 和 P2TURN 始终相同,则您可以选择 TURN 中继路径作为 LAN/lo 接口,即您将获得具有 LAN/lo IP 的 UDP 中继候选。
如果你想避免媒体路径中的UDP和两次TURN,你需要使用一些SFU/SVC,比如Jitsi(支持伪 SSL 候选)/Janus.
那么媒体路径将如下所示
P1 SFU/MCU P2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)