我正在使用webRTC开发一个用于远程屏幕共享的Android应用程序。对于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上运行。
这个GOOGLE眩晕服务器在LTE中不适用于美国吗?
在移动版的最新Chrome中查看这两个链接。
https://networktest.twilio.com
可能你可以检查网络是否正常。
同样在韩国,我对IPv6 LTE移动客户端存在一些问题。有时移动运营商会向其客户端提供IPv6,然后P2P连接不起作用。也许那里有同样的问题。
我用TURN + TCP解决了。我不知道为什么,但IPv6客户端不适用于UDP。
以下是一些相关文件:
?transport=tcp
的TURN网址
指定iceTransportPolicy:"relay"
,以便所有媒体都将通过TURN流动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