1

我使用了easyrtc 工具包(http://easyrtc.com/)(为nodejs 编写)在我的办公网络中设置了一个聊天系统。我没有做太多来实现这个设置,只是使用了工具包提供的演示。该应用程序托管在办公室内的 VM 上,而工具包的默认 ICE 配置提到位于办公室防火墙外的 STUN 和 TURN 服务器。

系统运行良好,但我有疑问。在与坐在办公室网络中另一台计算机上的同事发起 webrtc 视频聊天后,我对他的视频进行了“检查元素”。我期待 blob 地址位于他的 IP 地址,因为我相信我们已经在我们之间创建了点对点连接。但是 IP 地址原来是托管应用程序的 VM 的 IP 地址。为什么会这样?

<video autoplay="" id="callerVideo" src="blob:http%3A//10.30.23.56/e09742eb-941a-456f-88dc-addfb013c8e9"></video>

这里 10.30.23.56 是虚拟机的地址。虽然视频来自我同事的网络摄像头。

4

1 回答 1

2

video 标签正在播放来自 PeerConnection 创建的 MediaStream Blob 对象的视频。这个 Blob 对象通过一个 URL 字符串表示,该字符串只是一个标识符,在这种情况下,它是使用窗口的 URL + 唯一标识符构造的。请参阅 MDN 上的此MediaStream API。您不应将此 blob ID 作为媒体的源 IP 读入。源将是另一个对等方,其 IP 地址将取决于是否使用主机 IP、反射 IP(通过 STUN)或 TURN 的 IP。如果您想查看流式传输视频的实际 IP 地址和端口,您可以检查 SDP 和在对等方之间生成和交换的 ICE Candidates,或者您可以使用 Chrome 的 webrtc-internals (chrome://webrtc -internals) 工具。

于 2014-03-04T16:43:41.597 回答