我正在开发一个项目,用于在Android应用程序和网页之间创建WebRTC通信(基于Angular 2)。
我创建了两个应用程序,当两个设备在同一网络中时,通信正常工作。
我的问题是两个网络的情况。为此,我使用了TURN服务器。
在我的Angular应用程序中,我添加了如下的RTCConfiguration:
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
。
我看到很多关于同一主题的帖子,但没有一个帮助过我。
任何人都可以帮助我?
谢谢
答案 0 :(得分:0)
正如jib所说,你没有获得任何免费的TS更好的尝试在你的一台服务器机器上安装COTURN(opensource,然后尝试xirsys等)作为TS,但在此之前尝试测试你的用户背后的任何网络防火墙是,是对称的。如果任何用户在对称防火墙后面,那么只有TURN服务器才有用。
同时晕眩:stun.l.google.com:19302您提到的服务器是STUN服务器而不是TURN。还要检查其他网络内容,如UDP泛洪,并且在任何防火墙的任何地方都不会进行带宽限制。