RTCDataChannel: thuộc tính ReadyState
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.
Thuộc tính RTCDataChannel chỉ đọc readyState trả về một chuỗi cho biết trạng thái kết nối dữ liệu cơ bản của kênh dữ liệu.
Giá trị
Một chuỗi biểu thị trạng thái hiện tại của quá trình truyền dữ liệu cơ bản, là một trong các giá trị sau:
connecting-
Tác nhân người dùng (trình duyệt) đang trong quá trình tạo vận chuyển dữ liệu cơ bản; đây là trạng thái của
RTCDataChannelmới sau khi được tạo bởiRTCPeerConnection.createDataChannel(), trên thiết bị ngang hàng đã bắt đầu quá trình kết nối. open-
Việc vận chuyển dữ liệu cơ bản đã được thiết lập và dữ liệu có thể được truyền hai chiều qua nó. Đây là trạng thái mặc định của
RTCDataChannelmới được tạo bởi lớp WebRTC khi máy ngang hàng từ xa tạo kênh và gửi nó đến trang web hoặc ứng dụng trong sự kiệndatachannel. closing-
Quá trình đóng vận chuyển dữ liệu cơ bản đã bắt đầu. Không thể xếp hàng đợi tin nhắn mới được gửi nữa, nhưng các tin nhắn đã xếp hàng trước đó vẫn có thể được gửi hoặc nhận trước khi vào trạng thái
closed. closed-
Quá trình vận chuyển dữ liệu cơ bản đã đóng, hoặc nỗ lực thực hiện kết nối không thành công.
Ví dụ
const dataChannel = peerConnection.createDataChannel("File Transfer");
const 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;
}
}
Thông số kỹ thuật
| Specification |
|---|
| WebRTC: Real-Time Communication in Browsers> # dom-datachannel-readystate> |