WebSocket প্রোটোকল ব্যবহার করার সময়, ক্লায়েন্ট এবং সার্ভার বিশেষ কিছু সাব-প্রোটোকল (subprotocols) নির্দিষ্ট করতে পারে। Subprotocol হল একটি বিশেষ ধরনের প্রোটোকল যা WebSocket কানেকশনের মাধ্যমে দুই পক্ষের মধ্যে ডেটা আদান-প্রদানকে নির্দিষ্ট কোনো কাঠামো বা নিয়ম অনুসারে পরিচালনা করে। যখন একটি WebSocket কানেকশন স্থাপন করা হয়, তখন ক্লায়েন্ট এবং সার্ভার উভয়েই একটি বা একাধিক সাব-প্রোটোকল নির্দিষ্ট করতে পারে, যার মাধ্যমে তারা তাদের যোগাযোগের নিয়ম-কানুন নির্ধারণ করে।
Subprotocols কি?
Subprotocol হল একটি উচ্চতর প্রোটোকল যা WebSocket এর উপর ভিত্তি করে কাজ করে। মূল WebSocket প্রোটোকলটি শুধুমাত্র ডেটা আদান-প্রদানের জন্য একটি সাধারণ কাঠামো সরবরাহ করে, তবে Subprotocol একটি নির্দিষ্ট ডেটা আদান-প্রদান পদ্ধতি বা কাঠামো নির্ধারণ করে। উদাহরণস্বরূপ, আপনি একটি চ্যাট অ্যাপ্লিকেশন বা একটি গেমিং প্ল্যাটফর্ম তৈরি করতে পারেন, যেখানে প্রয়োজনীয় ডেটা কাঠামো নির্ধারণ করার জন্য আপনি একটি সাব-প্রোটোকল ব্যবহার করতে পারেন।
Subprotocols কিভাবে কাজ করে?
ক্লায়েন্ট এবং সার্ভার যখন WebSocket কানেকশন প্রতিষ্ঠা করে, তারা হেডারে Subprotocol নির্দিষ্ট করে। যদি সার্ভার ওই সাব-প্রোটোকল সমর্থন করে, তাহলে সার্ভার একটি 101 HTTP রেসপন্স পাঠায়, যেখানে নির্বাচিত সাব-প্রোটোকল উল্লেখ থাকে। সার্ভার সাব-প্রোটোকল না মানলে, কানেকশনটি অস্বীকার করা হয়।
ক্লায়েন্ট সাইডে সাব-প্রোটোকল নির্ধারণ
WebSocket অবজেক্ট তৈরি করার সময় আপনি একটি সাব-প্রোটোকল নির্বাচন করতে পারেন। এটি একটি অ্যারের মাধ্যমে হতে পারে, যেখানে একাধিক সাব-প্রোটোকল উল্লেখ করা যায়। যদি সার্ভার কোনো একটিকে সমর্থন করে, তবে তা নির্বাচন করা হবে।
সিনট্যাক্স:
let socket = new WebSocket("ws://example.com/socket", "chat");
এখানে "chat" একটি সাব-প্রোটোকল হিসেবে নির্বাচিত হয়েছে। সার্ভার যদি "chat" সাব-প্রোটোকল সমর্থন করে, তবে সংযোগটি স্থাপন হবে।
সার্ভার সাইডে সাব-প্রোটোকল সমর্থন
সার্ভারে আপনি WebSocket কানেকশনের সময় সাব-প্রোটোকল চেক করতে পারেন এবং যদি সেটি সমর্থনযোগ্য হয়, তবে সেই সাব-প্রোটোকল গ্রহণ করা হয়। উদাহরণস্বরূপ, Node.js-এ ws লাইব্রেরি ব্যবহার করে সার্ভার সাইডে সাব-প্রোটোকল চেক করা যেতে পারে।
Node.js উদাহরণ:
const WebSocket = require('ws');
const wss = new WebSocket.Server({
port: 8080,
handleProtocols: (protocols) => {
if (protocols.includes('chat')) {
return 'chat';
}
return false;
}
});
wss.on('connection', (ws, req) => {
console.log('সাব-প্রোটোকল:', req.headers['sec-websocket-protocol']);
ws.send('WebSocket সাব-প্রোটোকল সম্মত হয়েছে!');
});
Subprotocols এর ব্যবহার
Subprotocols ব্যবহারের মাধ্যমে আপনি বিভিন্ন ধরনের প্রোটোকল নির্দিষ্ট করতে পারেন, যা WebSocket কানেকশনের মাধ্যমে ডেটা আদান-প্রদানকে আরও কার্যকরী করে তোলে। কিছু সাধারণ উদাহরণ:
- "chat": একটি সাব-প্রোটোকল যা সাধারণত চ্যাট অ্যাপ্লিকেশনের জন্য ব্যবহৃত হয়, যেখানে বার্তা পাঠানোর এবং গ্রহণ করার নির্দিষ্ট নিয়ম থাকে।
- "json": JSON ডেটা আদান-প্রদানের জন্য একটি সাব-প্রোটোকল, যা ডেটাকে সঠিকভাবে ফর্ম্যাট করে পাঠানোর জন্য ব্যবহৃত হয়।
- "game": গেমিং অ্যাপ্লিকেশনের জন্য একটি সাব-প্রোটোকল, যা গেমের অবস্থা এবং খেলার তথ্য আদান-প্রদান করতে সাহায্য করে।
Subprotocols এর সুবিধা
- বিশেষায়িত ডেটা কাঠামো: WebSocket এর মাধ্যমে সহজেই নির্দিষ্ট কাঠামো অনুসরণ করে ডেটা আদান-প্রদান করা সম্ভব হয়। উদাহরণস্বরূপ, একটি চ্যাট অ্যাপ্লিকেশন
"chat"সাব-প্রোটোকল ব্যবহার করলে, চ্যাট বার্তার আদান-প্রদান একটি নির্দিষ্ট কাঠামো অনুযায়ী হবে। - ফর্ম্যাটিং এবং সুরক্ষা: কিছু সাব-প্রোটোকল ডেটার ফর্ম্যাটিং এবং সুরক্ষা নিশ্চিত করে, যেমন JSON সাব-প্রোটোকল ডেটাকে নির্দিষ্টভাবে ফরম্যাট করে পাঠানোর সুবিধা দেয়।
- কাস্টমাইজড পদ্ধতি: WebSocket সাব-প্রোটোকল ব্যবহারের মাধ্যমে আপনি বিশেষ কোন অ্যাপ্লিকেশন বা ব্যবহারের জন্য কাস্টম পদ্ধতি তৈরি করতে পারেন।
- বিভিন্ন অ্যাপ্লিকেশনের জন্য উপযুক্ত: বিভিন্ন ধরনের অ্যাপ্লিকেশন যেমন চ্যাট, গেমিং, লাইভ ট্র্যাকিং, ফাইনান্স, ইত্যাদির জন্য আলাদা আলাদা সাব-প্রোটোকল ব্যবহার করা যেতে পারে, যা প্রতিটি অ্যাপ্লিকেশনের কার্যকারিতা বৃদ্ধি করে।
সারাংশ
WebSocket সাব-প্রোটোকল ব্যবহার করে আপনি একটি WebSocket কানেকশনকে আরো কাস্টমাইজড এবং কার্যকরী করতে পারেন। ক্লায়েন্ট এবং সার্ভার উভয়েই একে অপরের সাথে সাব-প্রোটোকল চুক্তি করতে পারে, যার মাধ্যমে নির্দিষ্ট ডেটা কাঠামো বা আদান-প্রদান নিয়ম নির্ধারণ করা হয়। Subprotocols ব্যবহারের মাধ্যমে আপনি বিভিন্ন প্রকারের অ্যাপ্লিকেশন যেমন চ্যাট, গেমিং, JSON ডেটা আদান-প্রদান, এবং আরো অনেক কিছু সহজেই পরিচালনা করতে পারবেন।
Read more