Google si impegna a far progredire equità razziale per le comunità nere. Vedi come.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

canali di dati

Lo standard WebRTC copre anche un'API per l'invio di dati arbitrari su un RTCPeerConnection . Questo viene fatto chiamando createDataChannel() su un RTCPeerConnection oggetto, che restituisce un RTCDataChannel oggetto.

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

Peer remoto può ricevere canali dati intercettando il datachannel evento sul RTCPeerConnection oggetto. L'evento ricevuto è di tipo RTCDataChannelEvent e contiene un channel proprietà che rappresenta il RTCDataChannel collegato tra i peer.

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

Aprire e chiudere gli eventi

Prima di un canale dati può essere utilizzato per l'invio di dati, il cliente ha bisogno di aspettare fino a quando non è stato aperto. Questo viene fatto ascoltando il open evento. Allo stesso modo, v'è una close evento per quando entrambi i lati chiude il canale.

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

messaggi

L'invio di un messaggio su un RTCDataChannel si fa chiamando il send() funzione con i dati che vogliamo inviare. Il data parametro per questa funzione può essere una stringa, un Blob , un ArrayBuffer oe 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);
})
 

Il peer remoto riceverà i messaggi inviati su un RTCDataChannel ascoltando il message evento.

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