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