WebRTC 仅使用 Trickle Ice 示例识别本地 Ice Candidates,没有任何 stun 服务器

问题描述

我正在尝试使用 webrtc 数据通道建立一个 基于家庭对等 webrtc 的聊天系统,当我尝试使用创建报价获取 Ice 候选者时,我观察到只有一次 ice 候选者is local 已创建,生成的 SDP 字符串包含 ip 地址 127.0.0.1 和 0.0.0.0。 我在 createOffer() 之前添加了一个数据通道并创建了各自的冰处理程序。 我试图通过 getUsermedia() 添加媒体,但我只看到了一个 ice 候选者。 当我尝试与 Trickle Ice (https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/) 核对时 我看到了同样的情况,我没有看到任何包含我的 IP 地址的条目..

因此,其他对等方无法建立连接。

我没有使用任何 websockets,而是使用电子邮件直接在对等方之间共享 sdp 字符串,因为我试图了解它是如何工作的。 由于 Ice 服务器只需要 nat 遍历,而我的目的是在家庭聊天中,我不想添加任何 STUN 或 TURN 服务器。

我在 Trickle Ice 中看到以下条目,没有任何 Ice Server。 时间组件类型基础 ProtocolAddress 端口优先级 0.003 rtp 主机 1178812653 udp 31703155-6932-43d7-9d9b-44dda8daea28.local 58170 126 | 30 | 255

感谢任何帮助

解决方法

安东宁说的完全正确。这是带有 more detailsdiscuss-webrtc

一个解决方案可能是按原样使用 mDNS 主机名候选,或者执行 gUM 调用,然后让 Chrome 使用私有 IP 地址(后者似乎是一种解决方法,最终可能会中断)。其他人可能有更明确的解决方案。祝你好运!

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...