【问题标题】:Setting up Nodejs WebRTC Video call, and Turn / ICE fails, CORS is blocked设置 Nodejs WebRTC 视频通话,Turn/ICE 失败,CORS 被阻塞
【发布时间】:2016-12-13 15:53:49
【问题描述】:

我实际上已经关注了这个 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 failed”,或者 “跨域请求被阻止:同源策略不允许读取位于https://computeengineondemand.appspot.com/turn?username=41784574&key=4080218913 的远程资源。 (原因:缺少 CORS 标头“Access-Control-Allow-Origin”)。”

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

问题仍然存在。我的 STUN 服务器是“'url': 'stun:stun.l.google.com:19302'” 据我了解,STUN 应该在 80% 的时间内工作。但这永远行不通。因此,即使 TURNserver 不再工作,它有时也应该与 STUN 连接?

【问题讨论】:

  • 跟我一样关心!我可以添加你的电报\skype 来讨论这个解决方案吗?
  • 我还没有找到解决方案,但欢迎您给我发邮件 gideonscontikk@gmail.com
  • 所以我终于发现我办公室的网络阻塞了一切——STUN 服务器总是失败。我建立了一个自己的 TURN 服务器和 ta-daa - 视频通话终于可以工作了
  • 用这个demo.easyrtc.com/demos/demo_ice_filter.html做了一些有用的测试

标签: node.js webrtc stun rfc5766turnserver


【解决方案1】:

STUN 应该在 80% 的时间内工作意味着对于 80% 的互联网最终用户,STUN 应该在某些(大部分)时间里工作。您是否在这 80% 中取决于网络配置,尤其是是否允许 UDP。

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

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

您还需要将 TURN 服务器添加到您的 iceServers

【讨论】:

  • 是的 - STUN 服务器从未工作过。启动 STUN 服务器并将其设置到列表中解决了所有问题。
  • 我的意思是:是的 - STUN 服务器从来没有工作过,因为我的办公室网络阻止了一切。部署 TURN 服务器并将其添加到列表中解决了这个问题。这个应用程序对于测试流量也很有用 demo.easyrtc.com/demos/demo_ice_filter.html
  • @Gideons 看起来很有趣。您部署了哪个回合服务器以及如何部署?
  • 我在我自己的服务器上安装了一个 Coturn (github.com/coturn/rfc5766-turn-server),这里还有关于 Coturn 的说明:(webrtc-experiment.com/docs/…)。请记住检查您的防火墙,以免阻止流量
猜你喜欢
  • 2016-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-19
  • 2015-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多