【发布时间】:2014-10-24 08:05:58
【问题描述】:
我想构建一个 Web 应用程序,让两个对等方使用带有 HTML5 的视频和音频流并且没有插件(IE 除外,我假装使用 getUserMediajs 来使用 Flash 后备)来看到和听到对方。
我也想使用 NodeJS 传输该数据,但我不知道从哪里开始。举个例子:
节点 A 节点 JS 节点 B
我对这种 Peer 2 Server 2 Peer 方法感兴趣,而不是像 PeerJS 这样的 Peer 2 Peer 解决方案,因为:
1) 我认为它会更兼容所有浏览器。 如果这不完全正确,请告诉我。
2) PeerJS(我不感兴趣)在某些情况下依赖于黑魔法 STUN-TURN-ICE 信号。我在某处读到只有 70% 的连接适合这种传输,而我无法承受 30% 的损失。再次让我知道这是否不完全正确。
我已经玩过socket.io 并且知道 getUserMedia() 的概念来获取用户的网络摄像头,但不知道如何将其与 socket.io 链接并将其传输到其他客户端。
【问题讨论】:
-
如果您打算在 IE 上使用 Flash,您将需要某种媒体桥来让流通过(因此在这种情况下不是 Peer2peer)。此外,70% 的案例只需要 STUN。这个百分比是在谈论转弯的必要性。几乎所有情况都需要 NAT 遍历,这取决于类型。
-
感谢您的反馈。那么,总有(98% ~ 99%)的机会使用 STUN 或 TURN(30% 的连接)我们可以建立 P2P 连接?
-
Stun 将在大约 70% 的时间内用于 nat 遍历。同样,在不支持 WebRTC(即 IE)的浏览器中,您将不得不中继流量(解密、正确编码等)。
标签: html node.js sockets video-streaming webrtc