2015-12-09 178 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

相關問題