2016-12-01 58 views
0

我正在使用WebRTC創建視頻通話Web應用程序。在webrtc中獲取ICE失敗在不同網絡中通信時進行P2P視頻通話

通訊在同一網絡上正常工作。但是當在不同的網絡中通信時,我得到了ICE failed錯誤。

Error: ICE failed, see about:webrtc for more details

about:webrtc我能得到本地和遠程SDP的,但ICE Statefailedhttp://imgur.com/a/nPPDr

Here is the code of my main.js file

Here is the my log file from about:webrtc

P.S:張貼之前我在SO和其他網站覈對了帖子的問題,但沒人做的伎倆。

回答

0

您關於:webrtc不顯示從TURN服務器收集的任何中繼候選人。聽起來像是一個破碎的記錄:你需要一個TURN服務器來處理不同網絡之間的大多數連接。

+0

好像我正在使用過期的TURN服務器,除非防火牆阻止了連接。雖然我會改變我的TURN服務器。但是如果我使用STUN服務器,那麼不應該使用STUN啓動通信?或者我的STUN也失敗了?目前,我正在使用'{urls:[「stun:stun.l.google.com:19302」]}'作爲我的STUN服務器。 –

+0

當你說「改變你的回合服務器」時,你是在運行你自己的還是試圖使用「免費回合服務器」列表中的一個?哪有這回事。 在 上添加您的憑據https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/ 刪除stun服務器並單擊「收集」。看看你是否獲得了類型srflx和中繼的候選人。如果沒有你的回合服務器不起作用。 –

+0

我正在使用公共TURN服務器之一。 '{url:「turn:173.194.72.127:19305?transport = udp」,用戶名:「CKjCuLwFEgahxNRjuTAYzc/s6OMT」,憑證:「u1SQDR/SQsPQIxXNWQT7czc/G4c =」}'。我需要建立我自己的TURN服務器嗎? –

1

看看你提供的日誌文件,它看起來像你提供了一個TURN服務器,但與TURN服務器的通信只是超時。因此,無論是像本地防火牆一樣阻止與TURN服務器的通信或TURN服務器無法正常工作。

如果您的本地防火牆阻止UDP流量,它可能有助於配置和使用TURN TCP以通過防火牆。

+0

我會嘗試另一個TURN服務器。但是如果我使用STUN服務器,那麼不應該使用STUN啓動通信?或者我的STUN也失敗了?目前,我正在使用'{urls:[「stun:stun.l.google.com:19302」]}'作爲我的STUN服務器。 –

+0

日誌顯示與STUN服務器的通信正在工作。你從STUN服務器返回所謂的服務器反射候選。但是,專用網絡前面的防火牆/ NAT非常嚴格,STUN不足以建立兩個客戶端之間的工作通道。下面Phillip的評論中的日誌顯示,免費TURN服務器的憑證實際上不起作用。 –

+0

因此,如果我將進入限制較少的網絡,似乎STUN將起作用。對?現在我需要設置自己的TURN服務器還是可以使用公共TURN服務器? –