Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.
Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Saluran data

Standar WebRTC juga mencakup API untuk mengirim data sewenang-wenang melalui RTCPeerConnection . Ini dilakukan dengan memanggil createDataChannel() pada objek RTCPeerConnection , yang mengembalikan objek RTCDataChannel .

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

datachannel jarak jauh dapat menerima saluran data dengan mendengarkan acara datachannel pada objek RTCPeerConnection . Acara yang diterima adalah dari tipe RTCDataChannelEvent dan berisi properti channel yang mewakili RTCDataChannel terhubung di antara rekan-rekan.

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

Buka dan tutup acara

Sebelum saluran data dapat digunakan untuk mengirim data, klien harus menunggu sampai dibuka. Ini dilakukan dengan mendengarkan acara open . Demikian juga, ada acara close ketika kedua belah pihak menutup saluran.

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

Pesan

Mengirim pesan pada RTCDataChannel dilakukan dengan memanggil fungsi send() dengan data yang ingin kami kirim. Parameter data untuk fungsi ini dapat berupa string, Blob , ArrayBuffer atau dan 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 jarak jauh akan menerima pesan yang dikirim pada RTCDataChannel dengan mendengarkan acara message tersebut.

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