Javascript WebRTC-不同网络之间的通信

Javascript WebRTC-不同网络之间的通信,javascript,android,webrtc,stun,Javascript,Android,Webrtc,Stun,我从事一个项目,在Android应用程序和网页(基于Angular 2)之间创建WebRTC通信 我创建了这两个应用程序,当这两个设备在同一个网络中时,通信工作正常 我的问题是在两个网络的情况下。为此,我使用了TURN服务器 在Angular应用程序中,我添加了如下配置: conf: RTCConfiguration = {'iceServers': [ { 'urls': 'stun:numb.viagenie.ca'} ]}; ... this.pc = new RTCPeerC

我从事一个项目,在Android应用程序和网页(基于Angular 2)之间创建WebRTC通信

我创建了这两个应用程序,当这两个设备在同一个网络中时,通信工作正常

我的问题是在两个网络的情况下。为此,我使用了TURN服务器

在Angular应用程序中,我添加了如下配置:

conf: RTCConfiguration = {'iceServers': [
    { 'urls': 'stun:numb.viagenie.ca'}
]};

...

this.pc = new RTCPeerConnection(this.conf);
在我的Android应用程序中,我使用:

iceServers.add(new PeerConnection.IceServer("stun:numb.viagenie.ca"));
我还测试了Google TURN服务器(
stun:stun.l.Google.com:19302

在WebRTC内部的日志中,这两种情况之间的唯一区别是,当我们在两个不同的网络之间使用应用程序时,我从未收到
IceConnectionChanged:CONNECTED

我看到许多关于同一主题的帖子,但没有一篇对我有帮助

有人能帮我吗


谢谢你

正如jib提到的,你不会得到任何免费的TS,最好尝试在你的一台服务器机器上安装COTURN(开源软件,或者尝试xirsys等)作为TS,但在此之前,请尝试测试你的用户所在的任何网络防火墙是否对称。若任何用户在对称防火墙后面,那个么只有TURN服务器才有用,否则就并没有了

还有stun:stun.l.google.com:19302您提到的服务器是一个stun服务器,不能打开。另外,请检查其他网络内容,如UDP洪泛,任何防火墙中的任何地方都没有进行带宽限制

你使用的是晕眩,而不是转身(而且没有晕眩)。在大多数情况下,晕眩应该可以正常工作,但在某些情况下,只有转身才能工作。