4.2.4 RTCIceServer字典

RTCIceServer 字典用于描述可以被 ICE 代理用于与对等方建立连接的STUN和TURN服务器。

  1. dictionary RTCIceServer {
  2. required (DOMString or sequence<DOMString>) urls;
  3. DOMString username;
  4. (DOMString or RTCOAuthCredential) credential;
  5. RTCIceCredentialType credentialType = "password";
  6. };

字典RTCIceServer成员

URL的类型是 DOMString或序列,必填

  1. zh: [RFC7064]和[RFC7065]或其他URI类型中定义的STUNTURN URI

username的类型是 DOMString

如果此 RTCIceServer 对象表示 TURN 服务器,并且 credentialType 为 “password”,则此属性指定用于该TURN服务器的用户名。

如果此RTCIceServer对象表示TURN服务器,并且credentialType为“oauth”,则此属性指定共享对称密钥的密钥ID(kid),该密钥在TURN服务器和授权服务器之间共享,如[RFC7635]中所述。它是一个短暂而唯一的密钥标识符。密钥ID(kid)允许TURN服务器选择适当的密钥材料来解密Access-Token,因此这个密钥ID(kid)识别的密钥被用于“access_token”的加密。 kid值与OAuth响应“kid”参数相同,如[RFC7515]第4.1.4节中所定义。

credential的类型是 DOMString 或 RTCOAuthCredential

如果此 RTCIceServer 对象表示 TURN 服务器,则此属性是要与该 TURN 服务器一起使用的证书。

如果credentialType是“password”,则证书是DOMString类型,并表示长期验证密码,如[RFC5389]第10.2节中所述。

如果credentialType是“oauth”,则证书是RTCOAuthCredential类型,其中包含OAuth访问令牌和MAC密钥。

credentialType的类型是 RTCIceCredentialType,默认为“password”

如果此RTCIceServer对象表示TURN服务器,则此属性指定如何在该 TURN 服务器请求授权时使用证书。

An example array of RTCIceServer objects is:

一个 RTCIceServer 数组的例子:

  1. [
  2. {urls: 'stun:stun1.example.net'},
  3. {urls: ['turns:turn.example.org', 'turn:turn.example.net'],
  4. username: 'user',
  5. credential: 'myPassword',
  6. credentialType: 'password'},
  7. {urls: 'turns:turn2.example.net',
  8. username: '22BIjxU93h/IgwEb',
  9. credential: {
  10. macKey: 'WmtzanB3ZW9peFhtdm42NzUzNG0=',
  11. accessToken: 'AAwg3kPHWPfvk9bDFL936wYvkoctMADzQ5VhNDgeMR3+ZlZ35byg972fW8QjpEl7bx91YLBPFsIhsxloWcXPhA=='
  12. },
  13. credentialType: 'oauth'}
  14. ];