ডেটা চ্যানেল

WebRTC স্ট্যান্ডার্ড একটি RTCPeerConnection মাধ্যমে নির্বিচারে ডেটা পাঠানোর জন্য একটি API কভার করে। এটি একটি RTCPeerConnection অবজেক্টে createDataChannel() কল করে করা হয়, যা একটি RTCDataChannel অবজেক্ট প্রদান করে।

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

রিমোট পিয়ার RTCPeerConnection অবজেক্টে datachannel ইভেন্ট শুনে ডেটা চ্যানেল পেতে পারে। প্রাপ্ত ইভেন্টটি 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 ইভেন্ট শুনে 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';
});