2016-12-13 36 views
1

我實際上已經遵循了這個WebRTC codelab(https://codelabs.developers.google.com/codelabs/webrtc-web/#7),但在需要連接到ICE服務器時卡住了。設置Nodejs WebRTC視頻通話,並且Turn/ICE失敗,CORS被阻止

基本代碼在這裏:

main.js

var pcConfig = { 
    'iceServers': [{ 
    'url': 'stun:stun.l.google.com:19302' 
} 

[...] 

if (location.hostname !== 'localhost') { 
requestTurn(
    'https://computeengineondemand.appspot.com/turn?username=41784574&key=4080218913');} 

我平時要麼錯誤:「ICE失敗」,或 「跨來源請求阻止:同源策略不允許讀取遠程資源位於https://computeengineondemand.appspot.com/turn?username=41784574&key=4080218913。 (原因:缺少CORS頭'Access-Control-Allow-Origin')。「

根據後者,我已啓用 」A2enmod標題「並將其設置爲apache.conf」標題始終設置訪問控制「允許來源」*「」

問題依然存在。我的STUN服務器是「'url':'stun:stun.l.google.com:19302'」 據我所知,STUN應該在80%的時間內工作。但是這從來不行。因此,即使TURN服務器不再工作,它應該有時與STUN連接?

+0

同樣關注我!我可以添加您的電報\ skype來討論這個解決方案嗎? – Loint

+0

我還沒有找到解決方案,但歡迎您給我發郵件[email protected] – Gideons

+0

因此,我終於明白,我的辦公室網絡阻塞了一切 - STUN服務器始終失敗。我建立了自己的TURN服務器和ta-daa--視頻通話終於開始工作了 – Gideons

回答

1

STUN應該工作80%的時間意味着對於80%的互聯網終端用戶,STUN應該在某些(大部分)時間工作。無論你是否在這80%取決於網絡配置,最顯着的是UDP是否被允許。

您可以使用諸如Wiresharktcpdump之類的工具自行檢查STUN流量。

ICE同時使用STUN和TURN。如果STUN和TURN都不起作用,您將無法將WebRTC對等連接連接到您自己網絡之外的端點。

您還需要將TURN服務器添加到iceServers

+1

做了一些有用的測試是的--STUN服務器從未工作過。啓動STUN服務器並將其設置爲列表可解決所有問題。 – Gideons

+1

我的意思是:是的 - STUN服務器從來沒有工作,因爲我的辦公室網絡阻止了一切。部署TURN服務器並將其添加到列表中解決了這個問題。這個應用程序對測試流量以及demo.easyrtc.com/demos/demo_ice_filter.html – Gideons

+0

@Gideons看起來很有趣。你部署了哪個服務器,以及如何? –