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

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
setRemoteDescription()
Implicit rollback
Returns a Promise

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

参见