这是
实验性技术
检查
浏览器兼容性表格
要小心谨慎在生产中使用这之前。
只读
RTCDataChannel
property
readyState
returns an enum of type
RTCDataChannelState
which indicates the state of the data channel's underlying data connection.
var state = aDataChannel.readyState;
A string which is one of the values in the RTCDataChannelState enum, indicating the current state of the underlying data transport.
RTCDataChannelState
enum defines string constants which reflect the current status of the
RTCDataChannel
's underlying data connection.
| 常量 | 描述 |
|---|---|
"connecting"
|
The user agent (browser) is in the process of creating the underlying data transport; that is, whatever network level connection is used to link the two peers together is in the process of being set up. This is the state of a new
RTCDataChannel
after being created by
RTCPeerConnection.createDataChannel()
(on the peer which started the connection process).
|
"open"
|
The underlying data transport has been established and data can be transferred bidirectionally across it. This is the default state of a new
RTCDataChannel
created by the WebRTC layer when the remote peer created the channel and delivered to the site or app in a
datachannel
event of type
RTCDataChannelEvent
.
|
"closing"
|
The process of closing the underlying data transport has begun. It is no longer possible to queue new messages to be sent, but previously queued messages may still be send or received before entering the
"closed"
状态。
|
"closed"
|
The underlying data transport has closed, or the attempt to make the connection failed. |
var dataChannel = peerConnection.createDataChannel("File Transfer");
var sendQueue = [];
function sendMessage(msg) {
switch(dataChannel.readyState) {
case "connecting":
console.log("Connection not open; queueing: " + msg);
sendQueue.push(msg);
break;
case "open":
sendQueue.forEach((msg) => dataChannel.send(msg));
break;
case "closing":
console.log("Attempted to send message while closing: " + msg);
break;
case "closed":
console.log("Error! Attempt to send while connection closed.");
break;
}
}
| 规范 | 状态 | 注释 |
|---|---|---|
|
WebRTC 1.0: Real-time Communication Between Browsers
The definition of 'RTCDataChannel.readyState' in that specification. |
候选推荐 | 最初的规范。 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
readyState
|
Chrome 56 | Edge ≤79 | Firefox Yes | IE No | Opera 43 | Safari No | WebView Android 56 | Chrome Android 56 | Firefox Android Yes | Opera Android 43 | Safari iOS No | Samsung Internet Android 6.0 |
完整支持
不支持
实验。期望将来行为有所改变。
RTCDataChannel
MediaDevices.getUserMedia()
Navigator.mediaDevices
RTCCertificate
RTCDTMFSender
RTCDTMFToneChangeEvent
RTCDataChannelEvent
RTCDtlsTransport
RTCErrorEvent
RTCIceCandidate
RTCIceTransport
RTCPeerConnection
RTCPeerConnectionIceErrorEvent
RTCPeerConnectionIceEvent
RTCRtpReceiver
RTCRtpSender
RTCRtpTransceiver
RTCSctpTransport
RTCSessionDescription
RTCStatsEvent
RTCStatsReport
RTCTrackEvent