【发布时间】:2021-01-15 00:16:02
【问题描述】:
我编写了一个小型 WebRTC 演示,它将视频文件流式传输到其他对等方,并且一切正常(这是一个真正的 P2P 连接,不使用 TURN 服务器),除了这个:
一个客户端通过移动网络连接,一个通过 wifi 连接。当移动客户端创建报价并来回启动 ICE 候选人时,他们会确定 srflx 候选人并创建真正的 P2P 连接。
但是当 wifi-client 创建 offer 时,它们会退回到 TURN 服务器作为中继。
这发生在 Ubuntu 上的 Firefox 和 Chromium 中。
- 此行为是否表明我的代码中存在明显问题?
- 如果不是,这怎么可能?无论哪个客户端是控制器,ICE 协议不应该产生相同的两个候选吗?
【问题讨论】:
-
可能相关:stackoverflow.com/a/59485045 特别是关于 STUN 如何不适用于所有 NAT 的部分。这可能就是原因。我不确定它们不兼容的确切点,因此这可能是总体答案。
标签: javascript webrtc stun turn ice-protocol