2

我不知道有没有人发过这个,但我不想问。我的问题是这样的:

  • 我可以使用 apprtc.appspot.com 的两个 Chrome 选项卡(这意味着我称自己)进行视频聊天。一切运作良好。
  • 如果这些笔记本电脑在同一个网络上,我也可以将 apprtc 与两台不同的笔记本电脑一起使用。我在代理后面使用了我大学的网络。
  • 但是,如果我在调制解调器上的一台笔记本电脑和 LAN 上的另一台笔记本电脑上使用它,apprtc 就不起作用。

谁能解释发生了什么?这是 STUN/ICE 问题吗?还是JSEP?

4

3 回答 3

5

公开演示包括 STUN 服务器,但不提供 TURN 服务器,因为运行免费 TURN 服务器的带宽很昂贵。STUN 得到了很多思考,但不是所有的 NAT / 防火墙,但远没有 TURN 那么多。您可能处于 TURN 可以工作(但您没有 TURN 服务器)但 STUN 没有的情况。

于 2013-01-09T15:41:25.377 回答
3

我已经能够从两个不同的 NAT 后面使用http://apprtc.appspot.com/上的演示。所以它至少在理论上可以工作;但众所周知,STUN、TURN 和 ICE 并非万无一失。对于初学者,如果有人阻止了对端口 19302(apprtc 演示使用的 STUN 服务器的端口)的访问,则防火墙穿越将永远无法启动。

基本的故障排除步骤是打开 Chrome 开发人员工具 (ctrl-shift-i) 并查看控制台中是否有任何错误。如果没有发现任何有趣的东西,您需要编写自己的演示应用程序版本,这一次有更好的错误处理。例如,apprtc 演示假设某些事情不能被认为是理所当然的,例如,peerConnection.setLocalDescripton()并且peerConnection.setRemoteDescription()会成功。在生产代码中,您确实需要在这些代码上实现成功和失败回调 - 这将为您提供有关可能出现问题的更好信息。

于 2012-12-20T18:47:29.363 回答
3

AppRTC 默认使用 stun。TURN 是“更好的”(根据我的理解),但我记得 Justin Uberti 说公共 TURN 服务器可能会被滥用(或类似的东西)。

STUN 在企业级子网上经常失败,因为它无法“应对”不友好的 NAT 寻址。

于 2012-12-31T03:13:01.567 回答