2013-03-20 70 views
3

因爲幾天我試圖建立一個基本的webRTC視頻聊天。我有一些演示程序在本地運行,即使通過局域網。但是現在我想在真正的基礎上創建一個,而沒有一些Demos隨附的過載。WebRTC如何通過2個瀏覽器的局域網連接

但我仍然沒有得到完整的對等連接。

例如,這個例子似乎被破壞了,因爲我不能「createSignalingChannel();」 w3.org/TR/webrtc/#simple-example

其他一些例子(https://webrtc-experiment.appspot.com/)希望我鏈接他們的腳本,但我不會這樣做,因爲我想了解對等連接的魔力以及如何獲得2個瀏覽器之間的握手。

我還探討了谷歌應用引擎的例子,但那不是我想要的。

我想在真正簡單的JS和HTML上運行它,只需要最少的東西。

這裏是我的代碼: https://github.com/mexx91/basicVideoRTC編輯:現在應該工作

那麼,什麼會我要補充得到一個握手和對等連接,這樣,我可以讓如。 mediaStream到海誓山盟。

非常感謝!

回答

3

createSignalingChannel()只是僞代碼來說明單獨頻道的存在。您需要初始連接處理單獨的消息通道。

您可以使用Pusher,Brightcontext或PubNub等託管服務來實現此目標,也可以使用socket.io或SignalR等開放源代碼項目託管自己的後端。

然後,您只需通過您的單獨渠道發送優惠,答案和iceCandidates。

實時服務列表:http://www.leggetter.co.uk/real-time-web-technologies-guide

+0

非常感謝。我將通過nodeJs與socket.io一起嘗試。 – Mexx 2013-03-21 08:22:17

+0

@Max示例,使用socket.io和WebRTC https://github.com/rohansingh/rtc-p2p – Skomski 2013-03-21 11:17:21

1

想象一下,一個視頻會議網絡的應用程序,其中用戶A和B最初是從一些網絡服務器的訪問。假設Web應用程序支持在線狀態,所以Web服務器知道誰在線。想象一下,用戶界面允許A嘗試並向B發起視頻呼叫。通過說XMLHttpRequest(),A的瀏覽器通知服務器這是通緝,而B的JavaScript彈出一些說A要呼叫B的信息。根本沒有WebRTC發生然而。但是在這個階段,A可以通過使用例如發送消息而與B間接地進行通信。 XMLHttpeRequest。在WebRTC的說法中,這是「信號通道」。因此,A和B都可以與其ICE代理進行交互,以發現候選地址和SDP描述,並通過服務器將這些地址發送給每個服務器。例如。 A上的Web應用程序調用WebRTC API來獲取其ICE候選,並將它們打包,然後發送給B. B的閱讀器從服務器接收此消息(例如,通過WebSocket或長時間輪詢),並警告它可以將其解包,並根據需要使用RTCPeerConnection對象格式化爲發送給B上的ICE代理。同樣,可以在兩個應用程序之間發送SDP offer/answer,然後通過瀏覽器訪問ICE agnet,以獲得一致的媒體格式等。在該階段,媒體連接可以通過瀏覽器設置爲uo(meida流被添加到最初的RTCPeerConnection(它們沒有通信,但是它們具有可以被查詢來描述編解碼器等的屬性,並且當API被要求創建SDP描述時,它使用這些屬性來做,但是調整IP地址和基於每個本地瀏覽器上的ICE代理如何計算出哪些地址可以到達該本地瀏覽器/端口(NAT穿越)。