Google is committed to advancing racial equity for Black communities. See how.
این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

کانالهای داده

استاندارد WebRTC همچنین API را برای ارسال داده های دلخواه از طریق RTCPeerConnection پوشش می دهد. این کار با فراخوانی createDataChannel() در یک شی RTCPeerConnection شود که یک شیء RTCDataChannel برمی گرداند.

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

datachannel از راه دور می تواند با گوش دادن به رویداد 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);
})
 

مخاطب از راه دور با گوش دادن به رویداد message ، message های ارسال شده در RTCDataChannel را دریافت می کند.

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