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;
});
मैसेज
send()
फ़ंक्शन को कॉल करके RTCDataChannel
पर मैसेज भेजा जाता है
अपने डेटा को ऐक्सेस कर सकते हैं. इस फ़ंक्शन के लिए 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';
});