这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
The RTCSessionDescription interface describes one end of a connection—or potential connection—and how it's configured. Each RTCSessionDescription consists of a description type indicating which part of the offer/answer negotiation process it describes and of the SDP descriptor of the session.
The process of negotiating a connection between two peers involves exchanging RTCSessionDescription objects back and forth, with each description suggesting one combination of connection configuration options that the sender of the description supports. Once the two peers agree upon a configuration for the connection, negotiation is complete.
Properties
The RTCSessionDescription interface doesn't inherit any properties.
RTCSessionDescription.type只读- An enum of type
RTCSdpTypedescribing the session description's type.
RTCSessionDescription.sdp只读- A
DOMStringcontaining the SDP describing the session.
Constants
RTCSdpType
This enum defines strings that describe the current state of the session description, as used in the type property. The session description's type will be specified using one of these values.
| Value | Description |
|---|---|
answer |
The SDP contained in the sdp property is the definitive choice in the exchange. In other words, this session description describes the agreed-upon configuration, and is being sent to finalize negotiation. |
offer |
The session description object describes the initial proposal in an offer/answer exchange. The session negotiation process begins with an offer being sent from the caller to the callee. |
pranswer |
The session description object describe a provisional answer; that is, it's a response to a previous offer or provisional answer. |
rollback |
This special type with an empty session description is used to roll back to the previous stable state. |
Methods
The RTCSessionDescription doesn't inherit any methods.
RTCSessionDescription()- This constructor returns a new
RTCSessionDescription. The parameter is aRTCSessionDescriptionInitdictionary containing the values to assign the two properties. RTCSessionDescription.toJSON()- Returns a JSON description of the object. The values of both properties,
typeandsdp, are contained in the generated JSON.
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 |
Working Draft | Initial definition. |
Browser compatibility
| 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) | ? | 未实现 | ? | ? |