我在互联网上看到的几乎所有WebRTC示例都涉及使用单个参数RTCPeerConnection
创建null
。要传递The spec calls for two parameters:ICE服务器配置和媒体约束。
我注意到,从技术上讲,当您通过null
(例如var pc = new RTCPeerConnection(null);
)时,如果两个请求来自同一个路由器,则一切仍然有效。我不确定它是否可以跨网络运行。有人可以在这里说明发生了什么吗?
答案 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的基本概念时,不需要在简单的演示中添加所有这些复杂性