首页 > 解决方案 > WebRTC TURN“中继传输地址”可以与多个对等方共享吗?

问题描述

场景:Webrtcpeer1 想向 Webrtcpeer2 发送视频(仅发送数据)。事实证明,webrtcpeer2 位于对称 NAT 后面,无法进行直接通信。现在,两个对等点都联系一个转向服务器并获得他们各自的“中继传输地址”,并通过信令通道与对方共享它以及他们的 NAT“服务器反射传输地址”作为 ICE 候选者。现在 Webrtcpeer3 进入场景并希望看到 webrtcpeer1 与 webrtcpeer2 共享的相同视频源。事实证明,webrtcpeer3 也在对称 NAT 后面。

问题:

  1. WebRTC 堆栈会为 webrtcpeer1 分配一个新的“中继传输地址”以与 webrtcpeer3 通信吗?或者 webrtcpeer1 可以使用它在与 webrtcpeer2 连接时收到的现有“中继传输地址”。

  2. TURN 支持吗?--> webrtcpeer1 将单个视频源发送到转向服务器(连同 webrtcpeer2 和 3 的“中继传输地址”信息),然后转向服务器以某种方式神奇地将其发送到 webrtcpeer2 和 webrtcpeer3 各自的“中继传输地址”。

标签: webrtcp2pstunturnice

解决方案


1.)您需要Relayed Transport Address为每个对等方提供一个新的。您还需要为要连接的每个人创建一个新的 PeerConnection。webrtcpeer1只能连接到webrtcpeer2. 您将需要创建webrtcpeer1-1(在与 相同的主机上webrtcpeer1)与webrtcpeer3

2.) 不幸的是,TURN 不支持这一点。SFU(选择性转发单元)确实可以做到这一点!


推荐阅读