RTCPeerConnection.setRemoteDescription()

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.

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

RTCPeerConnection.setRemoteDescription() 方法改变与连接相关的描述,该描述主要是描述有些关于连接的属性,例如对端使用的解码器。连接受此更改影响,并且必须能够支持旧的和新的描述。方法带三个参数,RTCSessionDescription 对象用于设置,然后是更改成功的回调方法,一个是更改失败的回调方法。

方法是异步的,不用等待设置完成,成功会调用成功回调方法,失败则会调用错误回调方法。

连接的 offer 通常来自于负责匹配的服务器所发送的数据。执行者应调用此方法设置远程描述,然后生成发送到对端计算机的 answer。

语法

aPromise = pc.setRemoteDescription(sessionDescription);

pc.setRemoteDescription(sessionDescription, successCallback, errorCallback);

这个方法没有返回值。

参数

sessionDescription

Is a DOMString is the description of the parameters to be applied to the remote session.

successCallback

Is a Function without parameter which will be called when the description has been successfully set. At this point, one can send the offer to a remote server that can forward it to a remote client

errorCallback

Is a RTCPeerConnectionErrorCallback which will be called if the description can't be set. It takes the following parameter:

  • errorInformation which is a DOMString describing the reason why the description has not been set.

Example

js
var pc = new PeerConnection();
pc.setRemoteDescription(new RTCSessionDescription(offer), function () {
  pc.createAnswer(function (answer) {
    pc.setLocalDescription(answer, function () {
      // send the answer to the remote connection
    });
  });
});

规范

Specification
WebRTC: Real-Time Communication in Browsers
# dom-peerconnection-setremotedescription

浏览器兼容性

BCD tables only load in the browser

参见