WebRTC-JSEP:无法连接两个不同网络之间的对等方

WebRTC-JSEP:无法连接两个不同网络之间的对等方,webrtc,Webrtc,我不知道是否有人发布过这个,但我不想问。我的问题是这样的: 我可以在apptc.appspot.com上使用两个Chrome标签进行视频聊天(这意味着我可以自己打电话)。一切都很顺利 如果两台不同的笔记本电脑在同一个网络上,我也可以使用APPTC。我使用了我大学的网络代理 然而,如果我在调制解调器上使用一台笔记本电脑,而在局域网上使用另一台笔记本电脑,APPTC就不能工作 有人能解释发生了什么事吗?这是晕眩/冰的问题吗?或者JSEP?我已经能够在两个不同的NAT后面使用演示。所以它至少在理论

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

  • 我可以在apptc.appspot.com上使用两个Chrome标签进行视频聊天(这意味着我可以自己打电话)。一切都很顺利
  • 如果两台不同的笔记本电脑在同一个网络上,我也可以使用APPTC。我使用了我大学的网络代理
  • 然而,如果我在调制解调器上使用一台笔记本电脑,而在局域网上使用另一台笔记本电脑,APPTC就不能工作

有人能解释发生了什么事吗?这是晕眩/冰的问题吗?或者JSEP?

我已经能够在两个不同的NAT后面使用演示。所以它至少在理论上是可行的;但众所周知,晕眩、转身和冰击并不是绝对正确的。首先,如果有人阻止了对端口19302(apprtc demo使用的STUN服务器的端口)的访问,防火墙穿越将永远无法开始


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

AppRTC默认使用stun。TURN“更好”(据我所知),但我记得Justin Uberti说过,公共TURN服务器可能会被滥用(或类似的情况)


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

公共演示包括一个STUN服务器,但没有提供转弯服务器,因为运行空闲转弯服务器的带宽很昂贵。晕眩被认为是很多,但不是所有的NAT/防火墙,但不是在任何地方接近转弯。你可能会遇到回合有效的情况(但你没有回合服务器),而眩晕无效

如果你坐在一个典型的消费者家庭路由器后面,那就是你的防火墙(比如它)所在的位置。但是控制台日志显示了什么?我看到了带有地址数据的候选消息,地址数据填充了我的私有IP,我刚刚用telnet测试了stun.l.google.com,端口为19302,但无法连接。您可能想用另一台stun服务器试试。你能访问这个列表中的任何一个吗?我尝试了这个stun.stunprotocol.org,它与服务器连接,但我的webrtc仍然无法连接不同的网络。peerconnection有时可以获得公共ip,有时不能,因此候选数据具有不同的ip