3

2 台不同的计算机,2 台 Chrome,2 个不同的网络。

我正在上述 2 个对等方之间进行 WebRTC 调用,并使用getStats()检查连接。问题是,在一个 Chrome 中,它在“connection”属性中显示“ turn ”,而在另一个 Chrome 中,它显示“ stun ”。

那可能吗?我以为你要么通过一个或另一个连接?

4

2 回答 2

3

对的,这是可能的。

第一个浏览器将使用其 TURN 服务器检索到的 ICE Candidate。第二个浏览器将使用 STUN 检索到的 ICE Candidate(例如公共 IP 地址)。

事实上,TURN 服务器不必将 WebRTC 流中继到远程 TURN 服务器。如果对等方能够在不使用其 TURN 的情况下联系远程 TURN 服务器,则将仅使用一个中继服务器进行通信。

"iceTransports": "relay"但是,您可以在 webapp 的配置中使用以下选项RTCPeerConnection来强制两个浏览器都使用 TURN 服务器。

于 2015-12-02T13:25:24.803 回答
0

通常在两端选择中继候选人是罕见的情况,对于中继情况,大多数情况下您最终会在一端选择中继候选人,而在另一端选择服务器自反/对等自反候选人,尽管服务器自反/对等自反候选选择端将自己标识为 STUN 或对等候选,但它实际上是中继连接,最好检测您的原始连接类型是检查两端的候选类型。

于 2015-12-11T15:24:19.623 回答