我正在开发一个Android应用程序,用于使用webRTC进行远程屏幕共享。对于STUN服务器,我使用了google stun服务器。它在印度的WIFI和LTE上运行良好。在美国,它不适用于LTE,但适用于WIFI。
首先,我只使用了STUN服务器,然后将STUN和TURN服务器组合在一起,但是没有使用。
下面是我的代码,
val iceServers = ArrayList<PeerConnection.IceServer>()
iceServers.add(PeerConnection.IceServer("stun:stun.l.google.com:19302"))
iceServers.add(PeerConnection.IceServer("turn:13.250.13.83:3478?transport=udp", "YzYNCouZM1mhqhmseWk6", "YzYNCouZM1mhqhmseWk6"))
return iceServers
仍然,这在美国的LTE上不起作用。
在LTE中,此GOOGLE stun服务器不适用于美国吗?
答案 0 :(得分:0)
在最新的移动版Chrome浏览器中检查这两个链接。
https://networktest.twilio.com
可能您可以检查网络是否正常。
在韩国,IPv6 LTE移动客户端也有一些问题。有时,移动运营商将IPv6提供给其客户端,则P2P连接不起作用。也许那里有同样的问题。
我用TURN + TCP解决了。我不知道为什么,但是IPv6客户端不适用于UDP。
以下是一些相关文件:
要通过TURN服务器强制执行严格的TCP:
- 仅将TURN网址与
?transport=tcp
一起使用- 指定
iceTransportPolicy:"relay"
,以便所有媒体都将通过TURN流动
通过TCP和UDP提供TURN和STUN功能:
sudo turnserver -L <your STUN server\'s IP address> -o -a -f -r red5pro.com
要在没有TCP的情况下运行服务器:
sudo turnserver -L <your STUN server\'s IP address> -o -a -f --no-tcp --no-tcp-relay -r red5pro.com
仅通过UDP运行STUN:
sudo turnserver -L <your STUN server\'s IP address> -o -a -f --stun-only --no-tcp --no-tcp-relay -r red5pro.com