RTCDataChannel
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.
* Some parts of this feature may have varying levels of support.
Giao diện RTCDataChannel đại diện cho một kênh mạng có thể được sử dụng để truyền dữ liệu tùy ý ngang hàng hai chiều. Mỗi kênh dữ liệu được liên kết với một RTCPeerConnection và mỗi kết nối ngang hàng có thể có tối đa theo lý thuyết là 65.534 kênh dữ liệu (giới hạn thực tế có thể khác nhau tùy theo trình duyệt).
Để tạo kênh dữ liệu và yêu cầu một thiết bị ngang hàng từ xa tham gia cùng bạn, hãy gọi phương thức createDataChannel() của RTCPeerConnection. Thiết bị ngang hàng được mời trao đổi dữ liệu sẽ nhận được sự kiện datachannel (có loại RTCDataChannelEvent) để cho nó biết kênh dữ liệu đã được thêm vào kết nối.
RTCDataChannel là một vật có thể chuyển nhượng.
Thuộc tính phiên bản
Cũng kế thừa các thuộc tính từ EventTarget.
binaryType-
Một chuỗi xác định loại đối tượng nên được sử dụng để thể hiện dữ liệu nhị phân nhận được trên
RTCDataChannel. Các giá trị giống như được phép trên thuộc tínhWebSocket.binaryType:blobnếu đối tượngBlobđang được sử dụng, hoặcarraybuffernếu đối tượngArrayBufferđang được sử dụng. Giá trị mặc định làarraybuffer. bufferedAmountRead only-
Trả về số byte dữ liệu hiện đang xếp hàng để được gửi qua kênh dữ liệu.
bufferedAmountLowThreshold-
Chỉ định số byte dữ liệu gửi đi được lưu vào bộ đệm được coi là "thấp". Giá trị mặc định là 0.
idRead only-
Trả về số ID (từ 0 đến 65.534) xác định duy nhất
RTCDataChannel. labelRead only-
Trả về một chuỗi chứa tên mô tả kênh dữ liệu. Những nhãn này không bắt buộc phải là duy nhất.
maxPacketLifeTimeRead only-
Trả về lượng thời gian, tính bằng mili giây, trình duyệt được phép thực hiện để cố gắng truyền tải tin nhắn, như được đặt khi kênh dữ liệu được tạo, hoặc
null. maxRetransmitsRead only-
Trả về số lần tối đa trình duyệt nên cố gắng truyền lại tin nhắn trước khi từ bỏ, như được đặt khi kênh dữ liệu được tạo, hoặc
null, cho biết không có mức tối đa. negotiatedRead only-
Biểu thị liệu kết nối của
RTCDataChannelcó được ứng dụng Web thương lượng hay không (true) hoặc bởi lớp WebRTC (false). Giá trị mặc định làfalse. orderedRead only-
Cho biết kênh dữ liệu có đảm bảo gửi tin nhắn theo thứ tự hay không; mặc định là
true, cho biết kênh dữ liệu thực sự đã được sắp xếp. priorityRead only Experimental-
Trả về một chuỗi biểu thị mức độ ưu tiên của kênh dữ liệu, như được đặt khi kênh dữ liệu được tạo hoặc do tác nhân người dùng chỉ định. Các giá trị có thể là
"very-low","low","medium"hoặc"high". protocolRead only-
Trả về một chuỗi chứa tên của giao thức con đang sử dụng. Nếu không có giao thức nào được chỉ định khi kênh dữ liệu được tạo, thì giá trị của thuộc tính này là chuỗi trống (
""). readyStateRead only-
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. Nó có thể có một trong các giá trị sau:
connecting,open,closinghoặcclosed.
Thuộc tính lỗi thời
reliableRead only Deprecated Non-standard-
Cho biết kênh dữ liệu có đáng tin cậy hay không.
Các phương thức thực thể
Cũng kế thừa các phương thức từ EventTarget.- close()
-
: Đóng
RTCDataChannel. Một trong hai ngang hàng được phép gọi phương thức nàyđể bắt đầu đóng kênh.
send()- : Gửi dữ liệu qua kênh dữ liệu đến thiết bị ngang hàng từ xa.
Sự kiện
bufferedamountlow-
Đã gửi khi số byte dữ liệu trong bộ đệm dữ liệu đi giảm xuống dưới giá trị được chỉ định bởi
bufferedAmountLowThreshold. close-
Được gửi khi quá trình vận chuyển dữ liệu cơ bản đóng lại.
closing-
Được gửi khi quá trình truyền dữ liệu cơ bản sắp bắt đầu đóng.
error-
Được gửi khi xảy ra lỗi trên kênh dữ liệu.
message-
Được gửi khi nhận được tin nhắn từ thiết bị ngang hàng ở xa. Nội dung tin nhắn có thể được tìm thấy
trong thuộc tính
datacủa sự kiện. open-
Được gửi khi kênh dữ liệu được mở lần đầu tiên,
hoặc khi kết nối cơ bản của kênh dữ liệu hiện có mở lại.
Định dạng dữ liệu
Định dạng dữ liệu cơ bản được xác định bởi đặc tả IEEE Thủ tục trả lời/đề nghị SDP cho SCTP qua truyền tải DTLS (RFC 8841). Định dạng hiện tại chỉ định giao thức của nó là "UDP/DTLS/SCTP" (UDP mang DTLS mang SCTP) hoặc "TCP/DTLS/SCTP" (TCP mang DTLS mang SCTP). Các trình duyệt cũ hơn chỉ có thể chỉ định "DTLS/SCTP".
Ví dụ
const pc = new RTCPeerConnection();
const dc = pc.createDataChannel("my channel");
dc.onmessage = (event) => {
console.log(`received: ${event.data}`);
};
dc.onopen = () => {
console.log("datachannel open");
};
dc.onclose = () => {
console.log("datachannel close");
};
Thông số kỹ thuật
| Specification |
|---|
| WebRTC: Real-Time Communication in Browsers> # rtcdatachannel> |