RTCSessionDescription - 描述了连接(或潜在连接)的一端以及它的配置方式
这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
RTCSessionDescription
接口描述了连接(或潜在连接)的一端以及它的配置方式。每个 RTCSessionDescription
包含一个描述 type
,该类型指示它描述的提议 / 回复协商过程的哪一部分以及会话的 SDP 描述符。
在两个对等点之间协商连接的过程涉及到回交换 RTCSessionDescription
对象,每个描述都建议该描述的发送方支持的连接配置选项的一种组合。一旦两个对等方就连接配置达成一致,则协商完成。
属性
RTCSessionDescription
接口不继承任何属性。
RTCSessionDescription.type
只读
一个类型为 RTCSdpType 的枚举,描述会话描述的类型。
RTCSessionDescription.sdp
只读
一个 DOMString
,包含描述会话的 SDP。
常量
RTCSdpType
该枚举定义用于描述会话描述当前状态的字符串,如 type
属性中所使用。会话描述的类型将使用以下值之一指定。
值 | 描述 |
---|---|
answer |
sdp 属性中包含的 SDP 是交换中的最终选择。换句话说,此会话描述描述了约定的配置,并且正在发送以完成协商。 |
offer |
会话描述对象描述了提议 / 回复交换中的初始提议。会话协商过程始于从呼叫方向被呼叫方发送提议。 |
pranswer |
会话描述对象描述临时答案;也就是说,对先前提议的回应并非最终回复。它通常由旧式硬件使用。 |
rollback |
这种带有空会话描述的特殊类型用于回滚到以前的稳定状态。 |
方法
RTCSessionDescription
不继承任何方法。
RTCSessionDescription()
这个构造函数返回一个新的 RTCSessionDescription
。其参数是 RTCSessionDescriptionInit
字典,其中包含分配两个属性的值。
RTCSessionDescription.toJSON()
返回对象的 JSON 描述。type
和 sdp
这两个属性的值都包含在生成的 JSON 中。
实例
signalingChannel.onmessage = function (evt) {
if (!pc)
start(false);
var message = JSON.parse(evt.data);
if (message.sdp)
pc.setRemoteDescription(new RTCSessionDescription(message), function () {
// 如果我们收到提议,我们需要回复
if (pc.remoteDescription.type == "offer")
pc.createAnswer(localDescCreated, logError);
}, logError);
else
pc.addIceCandidate(new RTCIceCandidate(message.candidate),
function () {}, logError);
};
规范
规范 | 状态 | 备注 |
---|---|---|
WebRTC 1.0: Real-time Communication Between Browsers RTCSessionDescription 的定义 |
候选推荐 | 初始定义。 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 支持 | ≤18 | 支持 moz | 不支持 | 支持 | 支持 |
RTCSessionDescription() 构造函数 | 支持 | ≤18 | 支持 moz | 不支持 | 未知 | 未知 |
sdp | 支持 | 15 | 支持 moz | 不支持 | 支持 | 支持 |
toJSON | 支持 | 15 | 支持 moz | 不支持 | 支持 | 支持 |
type | 支持 | 15 | 支持 moz | 不支持 | 支持 | 支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 支持 |
RTCSessionDescription() 构造函数 | 支持 | 支持 | 未知 | 未知 | 未知 | 未知 | 未知 |
sdp | 支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 支持 |
toJSON | 支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 支持 |
type | 支持 | 支持 | 未知 | 支持 | 未知 | 支持 | 支持 |