设置Nodejs WebRTC视频呼叫,并且Turn / ICE失败,CORS被阻止

时间:2016-12-13 15:53:49

标签: node.js webrtc stun rfc5766turnserver

我实际上已经遵循了这个WebRTC代码框(https://codelabs.developers.google.com/codelabs/webrtc-web/#7),但在需要连接到ICE服务器时卡住了。

基本代码:

main.js

var pcConfig = {
  'iceServers': [{
    'url': 'stun:stun.l.google.com:19302'
}

[...]

if (location.hostname !== 'localhost') {
 requestTurn(
   'https://computeengineondemand.appspot.com/turn?username=41784574&key=4080218913');}

通常我会得到错误:“ICE失败”,或者 “阻止跨源请求:同源策略禁止在https://computeengineondemand.appspot.com/turn?username=41784574&key=4080218913读取远程资源。 (原因:CORS标题'Access-Control-Allow-Origin'缺失)。“

根据后者,我启用了 “A2enmod headers”并将其设置为apache.conf“Header始终设置Access-Control-Allow-Origin" *" “

问题仍然存在。我的STUN服务器是“' url':&st; stun:stun.l.google.com:19302' “ 据我所知,STUN应该有80%的时间工作。但这永远不会奏效。因此,即使TURNserver不再工作,它有时也应该与STUN连接?

1 个答案:

答案 0 :(得分:2)

STUN应该在80%的时间内工作意味着对于80%的互联网最终用户,STUN应该在某些(大多数)时间工作。您是否处于此80%取决于网络配置,最明显的是是否允许UDP。

您可以使用Wiresharktcpdump等工具自行检查STUN流量。

ICE同时使用STUN和TURN。如果STUN和TURN都不起作用,您将无法将WebRTC对等连接连接到您自己网络之外的端点。

您还需要将TURN服务器添加到gg::getItemID()