首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

未捕获DOMException:无法构造“”RTCPeerConnection“”:当URL方案为"turn“或"turns”时,用户名和凭据都是必需的。“

基础概念

RTCPeerConnection 是 WebRTC(Web Real-Time Communication)API 的一部分,用于在浏览器之间建立点对点的连接,实现音频、视频和数据的实时传输。WebRTC 提供了一种无需插件的方式,使浏览器能够进行实时通信。

问题原因

当你尝试使用 RTCPeerConnection 并且 URL 方案为 "turn" 或 "turns" 时,需要提供用户名和凭据。这是因为 TURN(Traversal Using Relays around NAT)服务器用于在 NAT(网络地址转换)或防火墙后面转发数据,以便两个对等端可以建立连接。为了安全起见,TURN 服务器需要验证客户端的身份。

解决方法

要解决这个问题,你需要提供 TURN 服务器的用户名和凭据。以下是一个示例代码,展示了如何配置 RTCPeerConnection 以包含这些凭据:

代码语言:txt
复制
const iceServers = [
  {
    urls: 'turn:turn.example.com',
    username: 'yourUsername',
    credential: 'yourCredential'
  }
];

const peerConnection = new RTCPeerConnection({ iceServers });

应用场景

这种配置通常用于以下场景:

  1. NAT 穿透:当两个对等端位于不同的网络后面,且有 NAT 或防火墙阻挡时。
  2. 防火墙穿透:当两个对等端位于有防火墙的网络后面时。
  3. 移动设备:在移动设备上,由于网络环境的复杂性,通常需要 TURN 服务器来辅助连接。

参考链接

通过提供正确的 TURN 服务器凭据,你可以成功构造 RTCPeerConnection 对象,并实现点对点的实时通信。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券