RTCConfiguration

来源:互联网 发布:各大电商平台比价软件 编辑:程序博客网 时间:2024/06/04 00:32

RTCConfiguration

原文地址:https://developer.mozilla.org/en-US/docs/Web/API/RTCConfiguration


该RTCConfiguration代码字典用于为RTCPeerConnection提供配置选项。在实例化连接时,或者在使用RTCPeerConnection.getConfiguration()RTCPeerConnection.setConfiguration()方法时可以将其传递给构造函数,这些方法允许在建立连接检查和更改配置。

选项包括ICE服务器和传输设置以及身份信息。

 

属性:

bundlePolicy 可选的

当远程对等SDP BUNDLE标准不兼容时,该属性指定如何处理候选的协商。这必须是RTCBundlePolicy列举的其中一个值。如果该值不包括在代码字典中,则假定"balanced"


certificates 可选的

一个Array类型的对象RTCCertificate由用于认证的连接中使用。如果未指定此属性,每个RTCPeerConnection实例自动生成一组证书。虽然给定连接只能使用一个证书,但为多个算法提供证书可能会提高在某些情况下成功连接的可能性。有关其他信息,请参阅下面的使用证书


此配置选项在首次指定后无法更改一旦证书被设置,这个属性将在以后的RTCPeerConnection.setConfiguration()调用中被忽略。


iceCandidatePoolSize 可选的

一个无符号的16位整数值,用于指定预取的ICE候选池的大小。默认值为0(意味着不会发生候选预取)。您可能发现在某些情况下,在开始尝试连接之前,允许ICE代理程序开始获取ICE候选项,可以更快地建立连接,以便在RTCPeerConnection.setLocalDescription()被调用时已经可以进行检查。

更改ICE候选池的大小可能会触发ICE收集的开始。


iceServers 可选的

一组RTCIceServer对象,每个对象描述也许是ICE代理使用的一个服务器这些通常是STUN/TURN服务器。如果没有指定,ICE代理可以选择使用自己的ICE服务器否则,连接会试着不使用STUNTURN服务器,这限制了与本地对等的连接。


iceTransportPolicy 可选的

目前的ICE传输政策这必须是RTCIceTransportPolicy列举中的值之一。如果未指定,则假定"all"


peerIdentity 可选的

DOMString为RTCPeerConnection指定了目标对等端的身份。如果设置此值(默认为null),RTCPeerConnection则不能连接到远程对等,除非使用给定的名称成功进行身份验证。


rtcpMuxPolicy 可选的

收集ICE候选时使用的RTCP多路复用策略,以支持非多路复用RTCP。该值必须是RTCRtcpMuxPolicy列举的值之一。默认是"require"


常量:

RTCBundlePolicy枚举

如果远程对等与字符串常量SDP标准BUNDLE针对单个传输链路上捆绑的多个媒体流兼容,RTCBundlePolicy枚举定义了用于请求收集ICE候选特定策略

在技术术语中,BUNDLE允许两个对等体之间的所有媒体流在单个5元组中也就是说,从一个对等体上的相同IP和端口到另一个对等体上的相同IP和端口,使用相同的传输协议。

常量

描述

"balanced" 

BUNDLE感知连接上,ICE代理应收集所有正在使用的媒体类型(音频,视频和数据)的候选项。否则,ICE代理商只用在单独的传输上协商一个音视频轨道。

"max-compat"

ICE代理应收集每个轨道的候选人,不是BUNDLE兼容的连接单独的传输协商所有媒体轨道

"max-bundle"

ICE代理人应该一个轨道收集候选人。如果连接不BUNDLE兼容,那么ICE代理应该只协商一个媒体轨道。

 

 


RTCIceTransportPolicy枚举

RTCIceTransportPolicy枚举定义字符串常量,这些字符串常量用于限制在连接过程中ICE候选的传输策略。

常量

描述

"all"

考虑所有ICE候选

"public" 

考虑具有公共IP地址的ICE候选从规范中删除了2016513日的工作草案。

"relay"

考虑通过TURN服务器传递IP地址的ICE候选

 

RTCRtcpMuxPolicy枚举

RTCRtcpMuxPolicy枚举定义了字符串常量指定收集那些支持非复用RTCP的ICE候选

常量

描述

"negotiate"

指示ICE代理收集RTPRTCP候选。如果远程对等可以复用RTCP,则RTCP候选在相应的RTP候选之上被复用。否则,RTPRTCP候选者分别返回。

"relay"

告诉ICE代理仅收集RTP候选者,并在其上面复用RTCP。如果远程对等不支持RTCP复用,则会话协商失败。


使用证书:

当您希望用RTCPeerConnection使用自己提供的证书而不是RTCPeerConnection自动生成的证书时,您可以通过调用RTCPeerConnection.generateCertificate()来实现。

此属性支持提供多个证书,因为给定的DTLS连接仅使用一个证书提供多个证书可支持多种加密算法。RTCPeerConnection的执行会选择使用远程对等端同样支持的证书上的算法,这在DTLS握手期间确定。

如果您不提供证书证书会自动生成。提供自己的证书有一个明显好处是身份密钥连续性——如果您对后续呼叫使用相同的证书,则远程对等可以告诉您是同一个呼叫者。这也避免了生成新密钥的成本。

 

例子:

下面的configuration配置了两个ICE服务器。第一个,stun:stun.services.mozilla.com需要身份验证,所以提供了用户名和密码。第二个服务器有两个URLsstun:stun.example.com 和 stun:stun-1.example.com。

var configuration= { iceServers: [{

                          urls: "stun:stun.services.mozilla.com",

                          username: "louis@mozilla.com", 

                          credential: "webrtcdemo"

                      }, {

                          urls: ["stun:stun.example.com", "stun:stun-1.example.com"]

                      }]};

var pc= new RTCPeerConnection(configuration);

原创粉丝点击