對不起,我的英語。我在webRTC有問題。我的應用程序在同一個網絡中正常工作,但不同的是錯誤的。WebRTC在不同的網絡中沒有視頻
技術,我用:
- socket.io
- 節點
- CoffeeScript的
- 一飲而盡
- zenserver
在這種github上我把我的代碼:github/oihi08/webrtc
我不知道爲什麼應用程序不能與不同的網絡一起運行。我已經上傳到服務器,我試過了,什麼都沒有。但在同一個網絡中是的。
非常感謝你!
對不起,我的英語。我在webRTC有問題。我的應用程序在同一個網絡中正常工作,但不同的是錯誤的。WebRTC在不同的網絡中沒有視頻
技術,我用:
在這種github上我把我的代碼:github/oihi08/webrtc
我不知道爲什麼應用程序不能與不同的網絡一起運行。我已經上傳到服務器,我試過了,什麼都沒有。但在同一個網絡中是的。
非常感謝你!
這聽起來像你沒有使用STUN/TURN服務器。在兩個設備之間創建連接有幾個步驟。其中一個步驟是選擇一個或多個STUN/TURN服務器(例如,「stun:stun.l.google.com:19302」)。即使在一端或兩端都有防火牆的情況下,該服務器也將用於在對等端之間創建連接。
當您設置一個或多個STUN/TURN服務器時,您將看到候選冰將開始生成。將爲每個生成的候選冰塊調用回調函數peerConnection.onicecandidate
。當圖書館完成產生候選人的候選人時,它會以NULL
作爲參數再次呼叫回叫,這會標記候選人列表的末尾。
您需要以某種方式將這些候選冰塊傳遞給另一個同伴,通常通過您首先用於創建連接的同一個信令服務器。當他們到達另一端時,您需要調用peerconnection.addIceCandidate。
如果您執行這些步驟,即使是跨嚴格NAT類型的網絡,您也可以獲得正確的連接。
如果您只查看發佈的源代碼,您會看到他正在使用TUN的STUN服務器。 – 2015-02-06 15:44:20
@BenjaminTrent如果你剛剛閱讀我的答案,你會發現他也需要一個TURN服務器。他也沒有派他的ICE候選人,也沒有將他們設置在另一邊。 – lorenzo373 2015-02-06 15:45:37
它看起來像我正在處理'onicecandidate'和信號通過...除非該邏輯不適用於咖啡腳本。 – 2015-02-06 15:49:13
我們在這裏需要更多信息。不同的網絡可以接受連接(防火牆,NAT等),您是否使用了正確設置和格式化的TURN服務器等。 – 2015-02-06 14:41:00
您的套接字是否始終爲「localhost:8080」?遠程客戶端如何連接到您的服務器以進行消息傳遞? – 2015-02-06 15:46:38
我還測試了服務器上的套接字,但無法正常工作。我不太瞭解這個話題,我正在學習WebRTC。 – oihi08 2015-02-09 12:25:32