Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Kênh dữ liệu

Tiêu chuẩn WebRTC cũng bao gồm một API để gửi dữ liệu tùy ý qua RTCPeerConnection . Điều này được thực hiện bằng cách gọi createDataChannel() trên một đối tượng RTCPeerConnection , trả về một đối tượng RTCDataChannel .

 const peerConnection = new RTCPeerConnection(configuration);
const dataChannel = peerConnection.createDataChannel();
 

Peer từ xa có thể nhận được các kênh dữ liệu bằng cách lắng nghe cho datachannel sự kiện trên RTCPeerConnection đối tượng. Sự kiện nhận được thuộc loại RTCDataChannelEvent và chứa thuộc tính channel đại diện cho RTCDataChannel được kết nối giữa các đồng nghiệp.

 const peerConnection = new RTCPeerConnection(configuration);
peerConnection.addEventListener('datachannel', event => {
    const dataChannel = event.channel;
});
 

Sự kiện mở và đóng

Trước khi một kênh dữ liệu có thể được sử dụng để gửi dữ liệu, khách hàng cần đợi cho đến khi nó được mở. Điều này được thực hiện bằng cách lắng nghe sự kiện open . Tương tự như vậy, có một sự kiện close khi một trong hai bên đóng kênh.

 const messageBox = document.querySelector('#messageBox');
const sendButton = document.querySelector('#sendButton');
const peerConnection = new RTCPeerConnection(configuration);
const dataChannel = peerConnection.createDataChannel();

// Enable textarea and button when opened
dataChannel.addEventListener('open', event => {
    messageBox.disabled = false;
    messageBox.focus();
    sendButton.disabled = false;
});

// Disable input when closed
dataChannel.addEventListener('close', event => {
    messageBox.disabled = false;
    sendButton.disabled = false;
});
 

Tin nhắn

Gửi tin nhắn trên RTCDataChannel được thực hiện bằng cách gọi hàm send() với dữ liệu chúng tôi muốn gửi. Tham số data cho hàm này có thể là một chuỗi, Blob , ArrayBuffer hoặc ArrayBufferView .

 const messageBox = document.querySelector('#messageBox');
const sendButton = document.querySelector('#sendButton');

// Send a simple text message when we click the button
sendButton.addEventListener('click', event => {
    const message = messageBox.textContent;
    dataChannel.send(message);
})
 

Thiết bị ngang hàng từ xa sẽ nhận được tin nhắn được gửi trên RTCDataChannel bằng cách lắng nghe sự kiện message .

 const incomingMessages = document.querySelector('#incomingMessages');

const peerConnection = new RTCPeerConnection(configuration);
const dataChannel = peerConnection.createDataChannel();

// Append new messages to the box of incoming messages
dataChannel.addEventListener('message', event => {
    const message = event.data;
    incomingMessages.textContent += message + '\n';
});