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 האירוע על 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';
});