Google est engagé à faire progresser l'équité raciale pour les communautés noires. Regarde comment.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

canaux de données

La norme WebRTC couvre également une API pour envoyer des données arbitraires sur une RTCPeerConnection . Cela se fait en appelant createDataChannel() sur un RTCPeerConnection objet, qui retourne un RTCDataChannel objet.

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

Le poste distant peut recevoir des canaux de données en écoutant le datachannel événement sur le RTCPeerConnection objet. L'événement reçu est du type RTCDataChannelEvent et contient un channel propriété qui représente le RTCDataChannel connecté entre les pairs.

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

Ouvert et événements à proximité

Avant un canal de données peut être utilisé pour l'envoi de données, le client doit attendre jusqu'à ce qu'il ait été ouvert. Cela se fait en écoutant l' open événement. De même, il existe une close événement lorsque chaque côté ferme le canal.

 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;
});
 

messages

L' envoi d' un message sur un RTCDataChannel se fait en appelant l' send() fonction avec les données que nous voulons envoyer. Les data paramètres pour cette fonction peut être soit une chaîne, un Blob , un ArrayBuffer ou et 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);
})
 

Le poste distant recevra les messages envoyés sur un RTCDataChannel en écoutant le message de l' événement.

 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';
});