【问题标题】:When creating a WebRTC PeerConnection can I skip the ICE (STUN/TURN) discovery process?创建 WebRTC PeerConnection 时,我可以跳过 ICE (STUN/TURN) 发现过程吗?
【发布时间】:2012-12-28 16:23:11
【问题描述】:

在我的设置中,我在云中有一个自定义服务器来处理音频和视频,所以我不需要(也不想要)整个“我在哪里以及我的私人和公共地址等”。发现过程。本质上,我想要 SDP 报价,而不关心 IP 地址/端口;该提议发送到服务器,服务器选择编解码器并获取 SRTP 密钥,并回复一个 SDP 答案给浏览器,其中将包含一个公共地址、编解码器选择和它的密钥。理想情况下,浏览器开始向服务器发送媒体,而服务器只是将“对等”媒体从它的来源发回(这将通过任何 UDP 友好的 NAT 设备返回)。

我知道这在技术上是可行的,因为我已经使用 Win32/OSX 桌面客户端执行此操作...问题是,这是否可以使用 WebRTC 和RTCPeerConnection?我尝试了一些配置类型,例如{}{ "iceServers": [] } 但它似乎仍然经历了发现的回旋。是否有其他方法可以缩短流程?谢谢!

【问题讨论】:

    标签: webrtc


    【解决方案1】:

    不,您不能跳过该过程,因为 WebRTC 实现强制使用 ICE 和 STUN 检查来修复 some security problems。因此,当前的 Chrome 实现将强制对 ICE 候选中协商的 IP/端口进行 STUN 检查。

    但是,是的,有许多应用程序在没有此要求的情况下运行。有一天,我们必须更改为更好、更安全的实现。现在是……

    【讨论】:

    • 感谢您的回答和链接。我的架构需要 TLS 上的信令 (SIP) 和经过身份验证的媒体 SRTP。我计划通过 HTTPS/TLS 使用 WebRTC 和 WebSockets 并需要经过身份验证的 SRTP,所以我不确定为什么出于安全目的我需要额外的 ICE/STUN 检查...?
    • 安全问题在于媒体会话建立。您可以阅读该文档以获得更多说明,但事实是,您无法仅使用 c= 和 m= SDP 标头启动与 Chrome 的媒体会话,就像老式的“Win32/OSX 桌面客户端”所做的那样。
    • 这是不正确的。如果您不提供 STUN(或 TURN)服务器,则根本不会进行 STUN 检查。但是,ICE 仍会发生,并将收集和使用主机(本地)候选人。
    【解决方案2】:

    不,你不能在 webrtc 浏览器中跳过它,但是 webrtc 设备(这里是你的网关)可以通过只实现 ICE Lite 来简化这个过程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-16
      • 2017-10-17
      • 1970-01-01
      • 1970-01-01
      • 2011-01-03
      • 1970-01-01
      • 2016-09-12
      • 1970-01-01
      相关资源
      最近更新 更多