RTCSessionDescription

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

实验性: 这是一项实验性技术
在将其用于生产之前,请仔细检查浏览器兼容性表格

RTCSessionDescription 接口描述连接或潜在连接的一端的配置方式。每一个RTCSessionDescription 由一个描述类型组成,该描述类型指示它所描述的请求/应答协商过程的SDP 协议的相关描述。

RTCSessionDescription 在两个对等点之间协商连接的过程涉及来回交换对象,每个描述都表示描述的发送者支持的连接配置选项的一个组合。一旦两个对等方就连接的配置达成一致,协商就完成了。

属性

RTCSessionDescription 接口不继承任何属性

RTCSessionDescription.type 只读

RTCSdpType 会话描述类型的原型枚举。

RTCSessionDescription.sdp 只读

一个 DOMString 包含会话的SDP协议描述。

常数

RTCSdpType

当前枚举值定义当前会话描述的状态,例如这个属性: type 。会话描述的值将使用如下值之一。

Value Description
answer SDP 协议请求内容包含在属性sdp中。换言之,此会话描述描述了商定的配置,并将被发送以完成协商。.
offer 该会话描述对象描述首次握手的请求/响应。会话过程从发送方到接收方。
pranswer 会话描述对象描述一个临时响应;也就是说,它是对以前的提议或临时答案的响应。
rollback 具有空会话描述的这种特殊类型用于回滚到以前的稳定状态。

方法

RTCSessionDescription 不继承任何方法。

RTCSessionDescription() 已弃用

该构造函数返回一个新的 RTCSessionDescription 对象。参数是 RTCSessionDescriptionInit 字典包含包含分配这两个属性的值。

RTCSessionDescription.toJSON()

返回一个JSON 描述对象。该对象包含两个值,typesdp

示例

js
signalingChannel.onmessage = function (evt) {
  if (!pc) start(false);

  var message = JSON.parse(evt.data);
  if (message.sdp)
    pc.setRemoteDescription(
      new RTCSessionDescription(message),
      function () {
        // if we received an offer, we need to answer
        if (pc.remoteDescription.type == "offer")
          pc.createAnswer(localDescCreated, logError);
      },
      logError,
    );
  else
    pc.addIceCandidate(
      new RTCIceCandidate(message.candidate),
      function () {},
      logError,
    );
};

规范

Specification
WebRTC: Real-Time Communication in Browsers
# rtcsessiondescription-class

浏览器兼容性

BCD tables only load in the browser

参见