RTCSessionDescription

这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

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

Example

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);
};

Specifications

Specification Status Comment
WebRTC 1.0: Real-time Communication Between Browsers
RTCSessionDescription
Candidate Recommendation Initial definition.

Browser compatibility

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!
Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) -moz 未实现 (Yes) ?
Feature Android Chrome for Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support ? ? (Yes) ? 未实现 ? ?

See also