为什么位于信令服务器上的webrtc blob地址?

我已经使用easyrtc工具包( http://easyrtc.com/ )(为nodejs编写)来在我的办公室networking中build立一个聊天系统。 我没有做太多的工作来实现这个设置,只是简单地使用了工具包提供的演示。 应用程序托pipe在办公室内的虚拟机上,而工具包的默认ICEconfiguration提到位于办公室防火墙之外的STUN和TURN服务器。

系统工作正常,但我有疑问。 在与我的同事坐在办公室的另一台计算机上开始webrtcvideo聊天之后,我在他的video中做了一个“检查元素”。 我期待的blob地址是在他的IP地址,因为我相信我们之间build立了一个点对点的连接。 但IP地址竟然是托pipe应用程序的虚拟机的IP地址。 为什么发生这种情况?

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

这里10.30.23.56是虚拟机的地址。 video来自我的同事的摄像头。

video标签正在播放由PeerConnection创build的MediaStream Blob对象的video。 这个Blob对象是通过一个URLstring来表示的,这个string只是一个标识符,在这种情况下,这个标识符是使用窗口的URL +唯一标识符来构造的。 在MDN上查看此MediaStream API 。 您不应将此Blob ID作为媒体的源IP进行读取。 源将是另一个对等体,其IP地址将取决于主机IP,reflectionIP(通过STUN)还是使用TURN的IP。 如果您想查看videostream的实际IP地址和端口,您可以检查在对等端之间生成和交换的SDP和ICE候选,或者您可以使用Chrome的webrtc-internals(chrome:// webrtc内部)工具。