Veri kanalları

WebRTC standardı ayrıca RTCPeerConnection Bu işlem,createDataChannel() RTCDataChannel nesnesi döndüren RTCPeerConnection nesnesi.

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

Uzak benzer, datachannel dinleyerek veri kanallarını alabilir etkinliği RTCPeerConnection nesnesinde değişir. Alınan etkinlik türü RTCDataChannelEvent vechannel RTCDataChannel benzerler arasında bağlantı kurdu.

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

Etkinlikleri açma ve kapatma

Bir veri kanalının veri göndermek amacıyla kullanılabilmesi için önce istemcinin beklemesi gerekir. açılana kadar bekleyin. Bu işlem, open etkinliği dinlenerek yapılır. Benzer şekilde, her iki tarafın kanalı kapattığında bir close etkinliği olur.

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

Mesajlar

RTCDataChannel cihazında mesaj gönderme işlemi send() işlevi çağrılır istediğimiz verileri göndermemiz gerekir. Bu işlev için data parametresi şöyle olabilir: bir dize, Blob, ArrayBuffer veya ArrayBufferView olabilir.

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

Uzak eş, RTCDataChannel üzerinden gönderilen mesajları şurada dinleyerek alır: message etkinliği.

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