구글은 블랙 사회를위한 인종 평등을 증진하기 위해 최선을 다하고 있습니다. 방법을 참조하십시오.
이 페이지는 Cloud Translation API를 통해 번역되었습니다.
Switch to English

데이터 채널

한 WebRTC 표준은 또한을 통해 임의의 데이터를 전송하기위한 API 커버 RTCPeerConnection . 이것은 호출하여 수행됩니다 createDataChannel() A의 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;
});
 

메시지

A의 메시지 보내기 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';
});