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