WebSocket প্রোটোকল ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে রিয়েল-টাইম যোগাযোগের জন্য একটি WebSocket অবজেক্ট তৈরি করতে হয়। WebSocket অবজেক্ট তৈরি করা হলে, এটি একটি স্থায়ী কানেকশন তৈরি করে, যা ক্লায়েন্ট এবং সার্ভারের মধ্যে অবিচ্ছিন্নভাবে ডেটা আদান-প্রদান করতে সক্ষম হয়। এখানে WebSocket অবজেক্ট তৈরি এবং সংযোগ স্থাপনের প্রক্রিয়া বিস্তারিতভাবে আলোচনা করা হলো।
WebSocket অবজেক্ট তৈরি
WebSocket অবজেক্ট তৈরি করতে JavaScript এর WebSocket কনস্ট্রাক্টর ব্যবহার করা হয়। এই অবজেক্টটি ক্লায়েন্ট সাইডে একমাত্র WebSocket কানেকশন পরিচালনা করার জন্য ব্যবহৃত হয়।
সিনট্যাক্স:
let socket = new WebSocket(url);
যেখানে:
url: এটি WebSocket সার্ভারের URL (Uniform Resource Locator), যেটি সাধারণতws://অথবা নিরাপদ সংযোগের জন্যwss://দিয়ে শুরু হয়।
WebSocket সংযোগ স্থাপন
WebSocket অবজেক্ট তৈরি করার পর, এটি স্বয়ংক্রিয়ভাবে সার্ভারের সাথে সংযোগ স্থাপন শুরু করে। এর পরবর্তী ধাপগুলো হলো:
- সংযোগ স্থাপন: WebSocket অবজেক্টটি URL এর মাধ্যমে সার্ভারের সাথে যোগাযোগ স্থাপন করে। যদি সার্ভার WebSocket প্রোটোকল গ্রহণ করে এবং সংযোগ সফল হয়, তখন এটি
OPENস্টেটে চলে যায়। - ইভেন্ট লিসেনার: কানেকশন স্থাপন হওয়ার পরে, বিভিন্ন ইভেন্টগুলি ঘটতে থাকে যেমন:
open: সংযোগ সফল হলে এই ইভেন্টটি ট্রিগার হয়।message: সার্ভার থেকে ডেটা গ্রহণ হলে এই ইভেন্টটি ট্রিগার হয়।error: যদি কোনো সমস্যা ঘটে তবে এই ইভেন্টটি ট্রিগার হয়।close: কানেকশন বন্ধ হলে এই ইভেন্টটি ট্রিগার হয়।
উদাহরণ: WebSocket অবজেক্ট তৈরি এবং সংযোগ স্থাপন
এখানে একটি উদাহরণ দেওয়া হলো যেখানে ws://example.com/socket URL এর মাধ্যমে WebSocket সংযোগ স্থাপন করা হচ্ছে:
// WebSocket অবজেক্ট তৈরি
let socket = new WebSocket("ws://example.com/socket");
// সংযোগ সফল হলে (open ইভেন্ট)
socket.onopen = function(event) {
console.log("WebSocket সংযোগ স্থাপন হয়েছে!");
socket.send("হ্যালো সার্ভার!"); // সার্ভারে বার্তা পাঠানো
};
// সার্ভার থেকে ডেটা পাওয়া (message ইভেন্ট)
socket.onmessage = function(event) {
console.log("সার্ভার থেকে বার্তা:", event.data);
};
// সংযোগ বন্ধ হলে (close ইভেন্ট)
socket.onclose = function(event) {
console.log("WebSocket কানেকশন বন্ধ হয়েছে");
};
// ত্রুটি ঘটলে (error ইভেন্ট)
socket.onerror = function(error) {
console.log("WebSocket ত্রুটি:", error);
};
WebSocket সংযোগ এবং অবস্থা
WebSocket অবজেক্টে কিছু গুরুত্বপূর্ণ অবস্থা (states) থাকে, যা আপনাকে কানেকশনের বর্তমান অবস্থা বুঝতে সাহায্য করবে:
- 0 (CONNECTING): সংযোগ স্থাপন করা হচ্ছে।
- 1 (OPEN): কানেকশন সফলভাবে স্থাপন হয়েছে এবং ডেটা আদান-প্রদান সম্ভব।
- 2 (CLOSING): কানেকশন বন্ধ করার প্রক্রিয়া চলছে।
- 3 (CLOSED): কানেকশন সম্পূর্ণরূপে বন্ধ হয়ে গেছে।
console.log(socket.readyState); // কানেকশনের বর্তমান অবস্থা দেখতে পারবেন।
সার্ভার সাইডে WebSocket সংযোগ
WebSocket সংযোগটি সাধারণত সার্ভার সাইডেও হ্যান্ডেল করা হয়। সার্ভার সাধারণত WebSocket প্রোটোকল সমর্থন করে এমন একটি পরিবেশে (যেমন Node.js, Python, বা Java) কাজ করে। উদাহরণস্বরূপ, Node.js-এ ws লাইব্রেরি ব্যবহার করে WebSocket সার্ভার তৈরি করা যায়।
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', (ws) => {
console.log("একটি ক্লায়েন্ট সংযুক্ত হয়েছে");
ws.on('message', (message) => {
console.log("ক্লায়েন্ট থেকে বার্তা:", message);
});
ws.send('হ্যালো ক্লায়েন্ট!');
});
সারাংশ
WebSocket অবজেক্ট তৈরি করা এবং সংযোগ স্থাপন প্রক্রিয়া সহজ এবং সরল। JavaScript এর WebSocket কনস্ট্রাক্টর ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে রিয়েল-টাইম ডেটা আদান-প্রদান সম্ভব হয়। সংযোগ সফল হলে, আপনি বিভিন্ন ইভেন্ট (যেমন open, message, error, close) ট্রিগার করে ডেটা আদান-প্রদান করতে পারেন। WebSocket প্রোটোকল ব্যবহারে আপনি অবিচ্ছিন্ন এবং দ্রুত যোগাযোগ ব্যবস্থা স্থাপন করতে পারবেন, যা অনেক ধরনের ইন্টারঅ্যাকটিভ অ্যাপ্লিকেশনগুলির জন্য উপযুক্ত।
Read more