2013-09-25 36 views
0

我試圖建立一個點對點的WebRTC應用的連接。我已經閱讀了論壇和討論組,這些論文和討論組使我認識到需要STUN/TURN服務器。下面是詳細信息:的WebRTC設置和相關查詢

  1. 我從https://code.google.com/p/rfc5766-turn-server/
  2. 安裝在我的本地的Mac OS X計算機上的服務器下載的STUN/TURN服務器的開源實現,並開啓了服務器在localhost:3478
  3. 當我使用客戶端腳本測試服務器時,我能夠從服務器獲取遠程地址。
  4. 然而,當我試圖從我的JavaScript代碼打服務器,同時創造一個點對點的連接,它不打服務器本身。

下面是我使用的代碼:

function createPeerConnection() { 
    var pc_config = {'iceServers': [{'url':'turn:127.0.0.1:3478', 'credential':'Apple123'}]}; 
     try { 
     // Create an RTCPeerConnection via the polyfill (adapter.js). 
     pc = new webkitRTCPeerConnection(pc_config); 
     pc.onicecandidate = gotLocalCandidate; 
     trace("Created RTCPeerConnnection with config:\n" + " \"" +JSON.stringify(pc_config) + "\"."); 
     } catch (e) { 
     trace("Failed to create PeerConnection, exception: " + e.message); 
     alert("Cannot create RTCPeerConnection object; WebRTC is not supported by this browser."); 
      return; 
     } 

     pc.onconnecting = onSessionConnecting; 
     pc.onopen = onSessionOpened; 
     pc.onaddstream = onRemoteStreamAdded; 
     pc.onremovestream = onRemoteStreamRemoved;   
} 

欣賞在這個問題上的任何指導,因爲我在這一點上完全卡住。 還有一個問題:如何爲內部網絡上同時存在對等體A和B的WebRTC應用程序建立點對點連接?是否需要STUN/TURN服務器?

回答

0

首先,打開服務器的東西,僅使用瞭如果P2P連接直接無法安裝。大約86%的電話可以不通過TURN服務器進行中繼(根據this幻燈片,我可以通過建議更好地理解TURN(從幻燈片44開始))。

TURN服務器應該是你的網絡之外,因爲它的目的是中繼流時,不可能在其他的方式來做到這一點。

我會建議你先從其中A和B都在同一網絡上的情況。那麼你不需要擔心使用STUN/TURN。它現在已經足夠複雜了。

+0

Thnaks的快速回復。我正嘗試在同一網絡上建立點對點連接。你能拋出一些關於如何處理這個問題或指引我到鏈接的信息嗎?因爲,我曾嘗試在同一臺機器上創建本地和遠程對等連接,並且工作得很好。但是,在不同的機器上創建點對點連接時,我面臨的問題是通過代碼獲取其他機器的IP地址。 – daredevil007

+0

這聽起來像你已經到了一個地步,你需要弄清楚如何將消息傳遞到另一個節點。爲此,我使用node.js和websockets,但選擇是免費的。但是你需要某種能夠將消息轉發給正確對等的服務器功能。 –

+0

只是一個更新..我能夠在內部網絡上成功建立WebRTC連接。現在我正在繼續在VPN上建立它。我想這裏是TURN/STUN服務器進入場景的地方。我對嗎?? – daredevil007