【问题标题】:WebRTC screen share not working on LTE in USAWebRTC 屏幕共享在美国的 LTE 上不起作用
【发布时间】:2019-04-30 05:05:42
【问题描述】:

我正在开发一个使用 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 stun 服务器是否不适用于美国的 LTE?

【问题讨论】:

  • 你试过其他STUN服务器吗:stackoverflow.com/q/20068944/295004
  • 尝试使用 url:'stun:stun1.l.google.com:19302',但没有用。是不是有些服务器在美国无法使用?

标签: android webrtc stun turn


【解决方案1】:

使用 STUN、TURN 检查网络连接

在最新的移动版 Chrome 中检查这两个链接。

https://networktest.twilio.com

https://test.webrtc.org

大概你可以检查一下网络是否正常。

可能是 IPv6 问题

同样在韩国,我在使用 IPv6 LTE 移动客户端时遇到了一些问题。有时移动运营商将 IPv6 提供给他们的客户,然后 P2P 连接不起作用。也许那里有同样的问题。

我用 TURN + TCP 解决了。我不知道为什么,但 IPv6 客户端不适用于 UDP。

以下是一些相关文件:

  • Webrtc media over tcp?

    通过 TURN 服务器强制执行严格的 TCP:

    • 仅使用带有?transport=tcp 的 TURN url
    • 指定iceTransportPolicy:"relay",以便所有媒体都通过TURN流动
  • TURN, STUN setting

    通过 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
    
  • What happens when WebRTC shifts to TURN over TCP

【讨论】:

  • 如果是 Ipv6,我们有什么办法可以让 WebRTC 正常工作吗?
  • 我加了一些练习
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多