WebRTC如何通过局域网与2个浏览器进行PeerConnection

时间:2013-03-20 16:20:26

标签: webkit webrtc videochat peer

因为几天我正在尝试构建一个基本的webRTC Videochat。我有一些Demos运行localy,甚至通过局域网。但是现在我想在真正的基础上构建一个没有过多的Demos一起带来的过载。

但我仍然没有得到完整的对等连接。

EG。这个例子好像坏了,因为我不能“createSignalingChannel();” w3.org/TR/webrtc/#simple-example

其他一些例子(https://webrtc-experiment.appspot.com/)希望我链接他们的脚本,但我不会这样做,因为我想了解对等连接的神奇之处以及如何在两个浏览器之间进行握手。

我还研究了Google App Engine的示例,但这不是我想要的。

我希望在非常简单的JS和HTML中运行它,只需要在最低限度的必要条件下运行它。

这是我的代码: https://github.com/mexx91/basicVideoRTC编辑:现在应该工作

那么我需要添加什么来获得握手和对等连接,以便我可以发送例如。 mediaStream给彼此。

非常感谢!

2 个答案:

答案 0 :(得分:3)

createSignalingChannel()只是伪代码,用于说明单独通道的存在。您需要初始连接处理单独的消息通道。

您可以使用Pusher,Brightcontext或PubNub等托管服务实现这一目标,或者您可以使用socket.io或SignalR等开源项目托管您自己的后端。

然后您只需通过单独的频道发送优惠,答案和iceCandidates。

实时服务列表:http://www.leggetter.co.uk/real-time-web-technologies-guide

答案 1 :(得分:1)

想象一下视频会议网络应用程序,用户A和B最初从某个网络服务器访问。假设Web应用程序支持在线状态,因此Web服务器知道当前在线的用户。 Imahine UI允许A尝试向B发出视频通话。通过说XMLHttpRequest(),A的浏览器通知服务器这是通缉的,B的javascript弹出一些东西,说A想要呼叫B.没有WebRTC发生了然而。但是在这个阶段,A可以通过使用例如发送消息来与B间接通信。 XMLHttpeRequest。在WebRTC的说法中,这是“信令通道”。因此,A和B都可以与其ICE代理进行交互以发现候选地址和SDP描述,并通过服务器通过此signallinh通道将这些发送给每个ot6。例如。 A上的Web应用程序调用WebRTC API来获取其ICE候选者,并根据需要打包它们,然后发送给B. B的读者从服务器接收此消息(例如通过WebSocket或长轮询)并且它可以解压缩,并根据需要格式化,以使用RTCPeerConnection对象发送到B上的ICE代理。 Similalrly,SDP提供/回答可以在他的两个应用程序之间发送,并通过浏览器中的ICE agnet,获得商定的媒体格式等。在那个阶段,媒体连接可以通过浏览器设置(添加meida流)最初到RTCPeerConnection(它们没有通信,但是有可以查询的属性来描述编解码器等,当要求API创建SDP描述时,它使用这些属性来做,但调整IP地址和端口基于每个本地浏览器上的ICE代理如何确定哪些地址可以到达本地浏览器/端口(NAT遍历)。