RTCIceServer - 定义了如何连接到单个 ICE 服务器

RTCIceServer 字典定义了如何连接到单个 ICE 服务器(例如 STUNTURN 服务器)。

iceServers 数组的 RTCPeerConnection 的配置中提供了这种类型的对象。

属性

credential 可选

登录服务器时使用的凭证。仅在 RTCIceServer 表示 TURN 服务器时使用。

credentialType 可选

如果 RTCIceServer 表示 TURN 服务器,则此属性指定连接时将使用哪种 credential。它必须是由 RTCIceCredentialType 枚举定义的值之一。默认值为 password

urls

必填属性是一个 DOMStringDOMString 数组,每个字符串指定一个可用于连接到服务器的 URL 。

username 可选

如果 RTCIceServer 是 TURN 服务器,则这是在身份验证过程中使用的用户名。

请避免在 urls 属性中指定过多的 URL;连接的启动时间将大大增加。系统会连接列表中的每一台服务器进行尝试,直到选中一台服务器进行协商。

WebRTC 规范的较旧版本包含 url 属性而不是 urls;为了使您可以为列表中的每个服务器指定多个地址,已对其进行了更改,如下例所示。

移除的属性

以下属性已从规范中删除,不应使用。

url

这个过时的属性是一个字符串,指定单个 ICE 服务器的 URL。 **请勿使用此属性;请改用 urls。**由于许多较旧的书籍和实例仍在使用它,因此我们将其包括在内以帮助开发人员更新其代码或理解较旧的示例。

实例

下面的配置建立两个 ICE 服务器。第一个名为 stun:stun.services.example.com,需要进行身份验证,因此提供了用户名和密码。第二个服务器具有两个 URL:stun:stun.example.comstun: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() 构造函数中,以将其用作新对等连接的配置。

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持 支持≤7922 不支持 未知 未知
credential 支持≤7922 不支持 未知 未知
credentialType 支持≤7947 不支持 未知 未知
url 支持≤7922 不支持 未知 未知
urls 支持≤7937 不支持 未知 未知
username 支持≤7923 不支持 未知 未知

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持 不支持 支持 未知24 未知 未知 未知
credential 不支持 支持 未知24 未知 未知 未知
credentialType 不支持 支持 未知47 未知 未知 未知
url 不支持 支持 未知24 未知 未知 未知
urls 不支持 支持 未知37 未知 未知 未知
username 不支持 支持 未知24 未知 未知 未知

相关链接