【问题标题】:WebRTC HowTo PeerConnection via LAN with 2 BrowsersWebRTC HowTo PeerConnection via LAN with 2 Browsers
【发布时间】:2013-03-20 16:20:25
【问题描述】:

几天以来,我一直在尝试构建一个基本的 webRTC 视频聊天。我有一些本地运行的演示,甚至通过局域网。但是现在我想在真正的基础上一个一个地构建,而不需要一些 Demo 带来的太多负担。

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

例如。这个例子似乎被打破了,因为我不能“createSignalingChannel();” w3.org/TR/webrtc/#simple-example

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

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

我想在非常简单的 JS 和 HTML 中运行它,只需要最少的必要条件。

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

那么我必须添加什么来获得握手和对等连接,以便我可以发送例如。 mediaStream 互相发送。

非常感谢!

【问题讨论】:

    标签: webkit webrtc videochat peer


    【解决方案1】:

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

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

    然后您只需通过您的单独渠道发送报价、答案和iceCandidates。

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

    【讨论】:

    • 非常感谢。我现在将通过 nodeJs 使用 socket.io 进行尝试。
    【解决方案2】:

    想象一个视频会议网络应用程序,用户 A 和 B 最初从某个网络服务器访问该应用程序。假设 Web 应用程序支持在线状态,因此 Web 服务器知道谁当前在线。想象一下,UI 允许 A 尝试向 B 发起视频呼叫。通过说 XMLHttpRequest(),A 的浏览器会通知服务器这是需要的,并且 B 的 javascript 会弹出一些内容,说 A 想要呼叫 B。根本没有发生 WebRTC然而。但是在这个阶段,A 可以通过发送消息来间接地与 B 通信,例如XMLHttpe 请求。用 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 遍历)。

    【讨论】:

      猜你喜欢
      • 2014-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-27
      • 2021-08-04
      • 1970-01-01
      • 2014-04-04
      相关资源
      最近更新 更多