我正在使用 localhost 测试我的 webrtc 应用程序...这是最奇怪的事情。有时它连接完美,在我的两个窗口上显示本地和远程视频。
有时在其中一个窗口上无法正常显示远程视频,因此远程视频只是“卡”在一张图像上,而不是“移动”。我猜它被卡住了,但另一个窗口仍然可以正常接收远程视频。所以这就像一种单方面的联系。
有时,webrtc
甚至根本无法连接。
我已经发生了所有这些事情,但代码是相同的。为什么webrtc
如此奇怪?
还有人遇到同样的问题吗?
最佳答案
您正在触及 P2P 协议(protocol)的主要问题,因为您需要两个对等点相互连接(听起来很简单,但在互联网上很复杂)。
这实际上取决于两台计算机之间的网络拓扑。
直接连接
对等点 1 --- 对等点 2
这种情况很完美,因为 1 连接到 2 没有任何障碍,反之亦然
路由连接
对等点 1 --- 路由器 --- 对等点 2
在互联网上的日常情况下,1 连接到 2 的能力在很大程度上取决于您的路由器配置(而且通常情况下,您无法控制中间路由器的配置)。 为了克服这种情况,开发了多种解决方案:
- uPnP :计算机告诉路由器计算机正在监听哪个端口,路由器应该监听并将数据包传输到计算机。它的采用率还不错,但存在安全问题。
- Stun and Turn服务器
在现实世界中,点对点网络依靠 super Node 来中继流量,在这种情况下,webRTC 就没有这样的东西(除非你算上 Turn 服务器),因为它们需要承担实时视频/音频的费用当扩展到很多客户端时,流量可能会很大。
关于javascript - 为什么 webRTC 这么不稳定?代码是相同的,但是 "sometimes it doesn' t 工作,有时它工作”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29308824/