我正在做一个项目,在安卓应用程序和网页之间创建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"));我还测试了谷歌转向服务器(stun:stun.l.google.com:19302)。
在WebRTC内部的日志中,这两种情况之间的唯一区别是,当我们在两个不同的网络之间使用应用程序时,我从未收到过IceConnectionChanged: CONNECTED。
我看到许多关于同一主题的帖子,但没有一个对我有帮助。
有人能帮我吗?
谢谢
发布于 2017-07-12 14:59:23
正如jib提到的,你不会得到任何免费的TS,最好试着在你的一台服务器上安装COTURN ( opensource否则试试xirsys等)作为TS,但在此之前,试着测试你的用户所在的任何网络防火墙是对称的。如果任何用户在对称防火墙之后,那么只有转向服务器将是有用的,否则就不是。
此外,您提到的服务器是STUN服务器,而不是TURN.Also,检查其他网络内容,如UDP洪流,并且在任何防火墙中都不会进行带宽限制。
https://stackoverflow.com/questions/45037776
复制相似问题