【问题标题】:WebRtcLocalhostIpHandling Policy makes webrtc peerConnection not workingWebRtcLocalhostIpHandling Policy 使 webrtc peerConnection 不起作用
【发布时间】:2020-11-27 09:02:51
【问题描述】:

有一个来自 WebRTC org 的 webrtc 示例

https://webrtc.github.io/samples/src/content/peerconnection/pc1/

它展示了如何在两个对等点之间创建对等连接。但是,重要的是要注意两个对等点都在本地计算机上。而这也是我们想要的,我们需要这个peerConnection来获得AEC(audio echo cancel)的好处。

但是在我们学校的网络环境下, 我们只使用 Edge(Chromium) 加入 webrtc 网页。而且出于安全考虑,我们将 WebRtcLocalhostIpHandling 设置为 default_public_interface_only,这会导致 rtcpeerConnection 断开,无法正常工作。

让我解释一下: WebRtcLocalhostIpHandling 是一种影响 Edge 浏览器行为的策略。 并且值 default_public_interface_only 表示允许在 HTTP 默认路由上使用通用接口。这不会暴露本地 IP 地址

现在的问题是: 我们需要 rtcpeerConnection 工作,还需要策略设置,我们应该怎么做? rtcPeerConnection api有配置吗?

【问题讨论】:

  • 我同意菲利普的观点。根据peer connections doc,STUN 或 TURN 服务器将为每个客户端提供 ICE 候选者,然后将其传输到远程对等点。它将本地 IP 地址转换为公共 IP 地址以发送出去。您还可以在this articlethis article 中找到有关 STUN 服务器和 TURN 服务器的更多信息。
  • 您可以尝试设置此策略:WebRtcLocalIpsAllowedUrls。它可以指定 WebRTC 应公开本地 IP 地址的源 (URL) 或主机名模式列表。您可以在此政策中设置您的网站。

标签: javascript html webrtc microsoft-edge policy


【解决方案1】:

样本不使用 STUN 服务器,因此在这种特殊情况下它们会中断。当您将工作的 STUN(或 TURN)服务器传递给 RTCPeerConnection 构造函数时,这应该不是问题。

【讨论】:

  • 谢谢,我试过 STUN 服务器,但似乎不行。我稍后会上传一个 Github 示例 URL 来展示演示。
  • 这是演示网址:ajlovechina.github.io/… 我试过 STUN 服务器:stun:stun.l.google.com:19302 是的,两个对等连接都可以成功完成 icecandidate 事件,并从 stun 中检索公共 IP服务器。但是 P2P 连接在同一个网页上不起作用。
  • 值得解释的是,我运行的 Edge(Chromium) 浏览器环境设置了策略。(WebRtcLocalhostIpHandling = default_public_interface_only)。对于没有设置此策略的 Edge(Chromium),demo 运行正常。
猜你喜欢
  • 1970-01-01
  • 2014-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-27
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
相关资源
最近更新 更多