RTCIceServer - 定义了如何连接到单个 ICE 服务器
RTCIceServer
字典定义了如何连接到单个 ICE 服务器(例如 STUN 或 TURN 服务器)。
在 iceServers
数组的 RTCPeerConnection
的配置中提供了这种类型的对象。
属性
credential
可选
登录服务器时使用的凭证。仅在 RTCIceServer
表示 TURN 服务器时使用。
credentialType
可选
如果 RTCIceServer
表示 TURN 服务器,则此属性指定连接时将使用哪种 credential
。它必须是由 RTCIceCredentialType
枚举定义的值之一。默认值为 password
。
urls
该必填属性是一个 DOMString
或 DOMString
数组,每个字符串指定一个可用于连接到服务器的 URL 。
username
可选
如果 RTCIceServer
是 TURN 服务器,则这是在身份验证过程中使用的用户名。
请避免在 urls
属性中指定过多的 URL;连接的启动时间将大大增加。系统会连接列表中的每一台服务器进行尝试,直到选中一台服务器进行协商。
WebRTC 规范的较旧版本包含
url
属性而不是urls
;为了使您可以为列表中的每个服务器指定多个地址,已对其进行了更改,如下例所示。
移除的属性
以下属性已从规范中删除,不应使用。
url
这个过时的属性是一个字符串,指定单个 ICE 服务器的 URL。 **请勿使用此属性;请改用 urls
。**由于许多较旧的书籍和实例仍在使用它,因此我们将其包括在内以帮助开发人员更新其代码或理解较旧的示例。
实例
下面的配置建立两个 ICE 服务器。第一个名为 stun:stun.services.example.com
,需要进行身份验证,因此提供了用户名和密码。第二个服务器具有两个 URL:stun:stun.example.com
和 stun:stun-1.example.com
。
var configuration = { iceServers: [{
urls: "stun:stun.services.example.com",
username: "louis@example.com",
credential: "webrtcdemo"
}, {
urls: [
"stun:stun.example.com",
"stun:stun-1.example.com"
]
}]
};
var pc = new RTCPeerConnection(configuration);
创建配置对象后,将其传递到 RTCPeerConnection()
构造函数中,以将其用作新对等连接的配置。
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 支持 | ≤79 | 22 | 不支持 | 未知 | 未知 |
credential | 支持 | ≤79 | 22 | 不支持 | 未知 | 未知 |
credentialType | 支持 | ≤79 | 47 | 不支持 | 未知 | 未知 |
url | 支持 | ≤79 | 22 | 不支持 | 未知 | 未知 |
urls | 支持 | ≤79 | 37 | 不支持 | 未知 | 未知 |
username | 支持 | ≤79 | 23 | 不支持 | 未知 | 未知 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 不支持 | 支持 | 未知 | 24 | 未知 | 未知 | 未知 |
credential | 不支持 | 支持 | 未知 | 24 | 未知 | 未知 | 未知 |
credentialType | 不支持 | 支持 | 未知 | 47 | 未知 | 未知 | 未知 |
url | 不支持 | 支持 | 未知 | 24 | 未知 | 未知 | 未知 |
urls | 不支持 | 支持 | 未知 | 37 | 未知 | 未知 | 未知 |
username | 不支持 | 支持 | 未知 | 24 | 未知 | 未知 | 未知 |