问题标签 [ice-protocol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
76 浏览

javascript - 为什么 WebRTC 有时会使用 TURN?

我编写了一个小型 WebRTC 演示,它将视频文件流式传输到另一个对等点,并且一切正常(这是一个真正的 P2P 连接,不使用 TURN 服务器),除了这个:

一个客户端通过移动网络连接,一个通过 wifi 连接。当移动客户端创建报价并来回启动 ICE 候选人时,他们会选择 srflx 候选人并创建真正的 P2P 连接。

但是当 wifi-client 创建 offer 时,它们会退回到 TURN 服务器作为中继。

这发生在 Ubuntu 上的 Firefox 和 Chromium 中。

  1. 这种行为是否指向我的代码中的一个明显问题?
  2. 如果不是,这怎么可能?无论哪个客户端是控制器,ICE 协议不应该产生相同的两个候选者吗?