2015-12-02 72 views
1

2个不同的计算机,2个Chromes,2个不同的网络。WebRTC连接 - STUN和TURN在同一时间?

我正在上述2个对等方之间进行WebRTC调用,并使用getStats()来检查连接。事情是,在一个Chrome浏览器中显示“”在“连接”属性和另一个它显示“stun”。

这可能吗?我以为你是通过一个或另一个连接?

回答

2

是的,这是可能的。

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

事实上,TURN服务器不必将WebRTC流量转发到远程TURN服务器。如果对方能够在不使用其TURN的情况下联系远处的TURN服务器,则只有一个中继服务器用于通信。

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

+0

这意味着同行之间仍然存在中继,不是吗?这就像PEER1 TURNSERVER PEER2? – igorpavlov

+0

是的,你是对的:) 在这种情况下,Peer 1将使用其STUN ICE Candidate加入Peer 2 TURN ICE Candidate。 –

0

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