Google стремится к продвижению расового равенства для чернокожего населения. Смотри как.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

каналы передачи данных

Стандарт WebRTC также охватывает API для отправки произвольных данных через RTCPeerConnection . Это делается путем вызова createDataChannel() на RTCPeerConnection объекта, который возвращает RTCDataChannel объект.

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

Удаленный партнер может принимать каналы передачи данных путем прослушивания для datachannel события на RTCPeerConnection объекте. Получено событие имеет типа RTCDataChannelEvent и содержит channel имущество, представляющие собой RTCDataChannel соединен между равноправными узлами сети .

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

Открыть и закрыть события

Перед тем, как канал передачи данных может использоваться для передачи данных, клиент должен ждать, пока он не был открыт. Это делается путем прослушивания open мероприятия. Кроме того, есть close событие , когда обе стороны закрывает канал.

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

Сообщения

Отправка сообщения на RTCDataChannel делается путем вызова send() функцию с данными , которые мы хотим отправить. data параметры для этой функции может быть либо строка, Blob , ArrayBuffer или и 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);
})
 

Удаленный партнер будет получать сообщения , отправленные на RTCDataChannel путем прослушивания на 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';
});