为什么null几乎总是传递给RTCPeerConnection?

时间:2015-02-05 03:18:10

标签: javascript html5 webrtc

我在互联网上看到的几乎所有WebRTC示例都涉及使用单个参数RTCPeerConnection创建null。要传递The spec calls for two parameters:ICE服务器配置和媒体约束。

我注意到,从技术上讲,当您通过null(例如var pc = new RTCPeerConnection(null);)时,如果两个请求来自同一个路由器,则一切仍然有效。我不确定它是否可以跨网络运行。有人可以在这里说明发生了什么吗?

1 个答案:

答案 0 :(得分:4)

  

我在Internet上看到的几乎所有WebRTC示例都涉及使用单个参数null创建RTCPeerConnection。

我猜这些例子,大部分时间都假设你在同一台计算机上。所以你真的不需要任何iceServers。 (并且这些示例不希望为您提供“免费”的晕眩服务器/转向服务器?)

  

我注意到从技术上讲,如果两个请求在传递null时来自同一路由器,一切仍然有效。

如果客户端不在同一网络上,则不会出现这种情况。因为没有stun服务器(通过iceServers配置),客户端无法获得他们的服务器反身地址。

修改

正如@syno的评论所指出的那样:

目前,webRTC的一个“安全”问题是,在创建对等连接时,STUN和TURN服务器配置将作为明文传递。任何人都可以查看JavaScript代码并使用您的服务器。这就是为什么使用带有REST API的TURN服务器(code.google.com/p/rfc5766-turn-server/wiki/turnserver)来获得临时“时间戳”的原因,以限制不受欢迎用户的使用。当目的是学习或展示webRTC的基本概念时,不需要在简单的演示中添加所有这些复杂性