为什么webRTC如此慌乱?代码是相同的,但是有时它不起作用,有时它可以工作&#34 ;?

时间:2015-03-27 19:35:09

标签: javascript node.js socket.io webrtc p2p

我正在使用localhost测试我的webrtc应用程序......这是最奇怪的事情。有时它连接完美,在我的两个窗口上都显示本地和远程视频。

有时在其中一个窗口上,它无法正常显示远程视频,因此远程视频只是“卡住了”#34;在一张图片上,并没有"移动"。它我被冻结了,但是另一个窗口仍然可以接收远程视频。所以它就像一个单方面的联系。

有时,webrtc根本没有联系。

我已经完成了所有这些事情,但代码是一样的。为什么webrtc如此奇怪?

还有其他人遇到过同样的问题吗?

1 个答案:

答案 0 :(得分:1)

你正在触及P2P协议的主要问题,因为你需要你的两个对等体相互连接(听起来很简单,但在互联网上很复杂)。

这实际上取决于两台计算机之间的网络拓扑结构。

直接连接

Peer 1 --- Peer 2

这种情况很完美,因为没有障碍让1连接到2,反之亦然

路由连接

同行1 ---路由器---同行2

互联网上的日常情况,1连接到2的能力在很大程度上取决于您的路由器配置(而且通常情况下,您不会控制其间的路由器配置)。 为了克服这种情况,开发了多种解决方案:

  • uPnP:计算机告诉路由器计算机正在侦听哪个端口,路由器应该监听并将数据包传输到计算机。它的采用率有点差,但是存在安全问题。
  • Stun and Turn服务器

我是现实世界的情况,在这种情况下,点对点网络依靠超级节点来中继流量,对于webRTC来说有很多事情(除非你算上Turn服务器),因为他们需要携带实时视频/音频在向很多客户提供服务时,交通可能很重。