2015-12-09 75 views
0

我写一个WebRTC应用外,虽然一切正常,我的局域网内。但是,当对等体处于不同网络时,我有一个ICE Failed错误。的WebRTC ICE失败LAN

我的STUN服务器返回的公网IP的候选人,所以我认为这是正确设置。问题是候选IP不是“正确配对”。浏览器总是尝试将一个公共IP与一个私有IP连接,因此连接失败(请参阅Candidate Pairs)。

这里有什么问题?信令服务器还是rtcpeerconnection配置?

+2

我认为这是行不通的,因为网络(即防火墙,对称NAT等),有东西挡你的P2P流量。你可以尝试使用TURN服务器吗? –

回答

1

只使用本地主机和服务器反射候选如果你的NAT允许进入的数据包从其他同行,通常NAT不允许从未知到NAT源传入的数据包,你只能连接。你可以做一个NAT发现下面的RFC-3489你的WebRTC实现之外(过时的,虽然,但仍然有用),或只是创建NAT不知道NAT类型,将工作结合,如果你是落后端口受限锥形或全锥形NAT类型。最简单的办法使用的WebRTC将是使用TURN服务器具有中继候选者进行连接,如果你不想做NAT的发现和应用一些智能穿越NAT。

+0

有点真实。 STUN的重点在于识别服务器反射候选,这样WebRTC中的ICE算法就可以对兼容的NAT执行UDP打孔步骤。只要您(或其他节点)不在对称NAT或限制性防火墙的后面,STUN的成功率就很高(但并非完美)。 – selbie

相关问题