【问题标题】:Whether STUN server is needed within LAN for WebRTC?WebRTC局域网内是否需要STUN服务器?
【发布时间】:2013-11-09 14:35:49
【问题描述】:

我使用 Webrtc 开发了一个 p2p 视频聊天。我知道需要 STUN 或 TURN 服务器来识别 NAT 后面的公共 IP。目前正在使用谷歌的 STUN 服务器。

我的应用程序安装在连接到局域网的服务器中,无法访问互联网,我是否需要在我的服务器中安装 STUN 服务器才能使 Webrtc 视频聊天在局域网内工作?

【问题讨论】:

  • 您是否能够在 LAN 中的主机上配置候选人,就像您向 Sam 提出的问题一样?

标签: webrtc stun


【解决方案1】:

节点应该能够在没有 STUN 的情况下在 LAN(在 NAT 的同一侧)内连接,即使用候选主机。试试看!

【讨论】:

  • 感谢发帖,能否请您详细说明如何使用候选主机实现。
  • var peer = new PeerConnection(iceServers, optional); where iceServers = null 这是在没有互联网的情况下工作。
  • 请注意,在 Android API iceServers 上不能为 null 或 Collections.EMPTY_LIST。必须是新的 ArrayList() 或类似的。
  • DataChannel 上的单向通信是从 host1 到 host2,在 WAN 中只有 host2 可以访问,理论上可以在没有 STUN/TURN 的情况下进行通信吗?用例是客户端单向流向服务器。这是可能的还是 WebRTC 没有真正涵盖这个用例?
  • 我回答自己:假设 host2 具有用于数据通信套接字的开放/可访问 TCP/UDP 端口,理论上可以在 Internet 中从 host1 到 host2 的 WebRTC 没有 STUN/TURN。此外,客户端仍然需要弄清楚 host2 的真实公共 IP 地址,因为 host2 不能可靠地提供它,这是一些浏览器客户端无法做到的。基本上,这需要一个不存在的自定义 WebRTC 实现。
【解决方案2】:

一般来说,您不需要 STUN 服务器。但是,根据防火墙配置,您实际上可能需要 STUN(甚至 TURN)。例如,在SFHTML5 WebRTC Hackathon,我们位于阻止本地 UDP 和 TCP 流量的公司访客 WiFi 网络上。在这种情况下,成功调用需要 TURN 服务器。

【讨论】:

    猜你喜欢
    • 2014-06-11
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多