2013-03-20 69 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穿越)。