WebRTC - Codelab STUN / TURN服务器上的网络问题

时间:2018-02-06 19:45:26

标签: node.js webrtc stun turn simplewebrtc

这是我在stackoverflow中的第一个问题,我非常封锁,我需要一些帮助。首先,非常感谢你。

我正在尝试在网络应用中开发WebRTC解决方案,以便从不同的计算机上传输视频。我正在使用NodeJS开发它,只需遵循the WebRTC codelab的指导原则。复制并理解后,我开发了一个部署文件,将解决方案部署到Azure Web应用程序。 现在我能够看到我的视频流,如果我从不同的主机连接但在同一网络中,我可以看到两个视频流,每个视频流来自不同的机器。好的,这就是我想要的。但是,一旦我从不同的网络访问我的网络,它就无法运行。我可以在控制台中看到来自其他对等方的连接和来自它的消息(可能是因为STUN服务器?)但视频流没有出现。

我认为这是因为TURN服务器,但我不确定,因为我正在尝试使用其他人,但它仍无效。

这与我上面提到的codelab代码相同,有人在这里有同样的问题吗? TURN服务器可能无法正常工作吗?

(添加Turn服务器的部分代码)

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

谢谢!

2 个答案:

答案 0 :(得分:0)

好吧,传递大量数据的TURN服务器需要花钱才能运行。很多钱。没有人会让你免费访问他们的,你需要自己运行。有关详细信息,请参阅this blog post

URL from the codelab也会导致404页。

答案 1 :(得分:0)

19:19 minute mark 我相信您需要实现ICE服务器。基本上,要通过Internet遍历NAT,您需要知道您的外部IP地址是什么以及支持哪些协议,例如UDP http等。ice服务器在json对象中提供了使用哪种协议以及url或ip地址的选项。视频不需要纠错,因此不建议使用http,但有时是唯一可用的选项