Web Sockets এর মাধ্যমে ক্লায়েন্ট এবং সার্ভারের মধ্যে রিয়েল-টাইম, দ্বৈত দিকের (full-duplex) যোগাযোগ স্থাপন করা সম্ভব। এটি সাধারণ HTTP প্রোটোকলের তুলনায় দ্রুত এবং কার্যকরী ডেটা আদান-প্রদান নিশ্চিত করে। যদি আপনি আপনার প্রথম Web Sockets প্রজেক্ট তৈরি করতে চান, তাহলে নিচে একটি সহজ Web Sockets প্রজেক্ট তৈরি করার জন্য প্রয়োজনীয় ধাপগুলোর আলোচনা করা হলো।
প্রয়োজনীয় সরঞ্জাম
- Node.js: সার্ভার-সাইড JavaScript রানটাইম, যা Web Sockets প্রজেক্টে ব্যবহার করা হবে।
- WebSocket লাইব্রেরি:
wsলাইব্রেরি, যা Node.js এ Web Sockets কানেকশন পরিচালনা করবে। - HTML, CSS, এবং JavaScript: ক্লায়েন্ট সাইডের জন্য, যেখানে Web Sockets কানেকশন তৈরি এবং ডেটা ট্রান্সফার হবে।
১. Node.js ইনস্টল করা
প্রথমে আপনাকে আপনার সিস্টেমে Node.js ইনস্টল করতে হবে। Node.js অফিসিয়াল ওয়েবসাইট থেকে সর্বশেষ সংস্করণ ডাউনলোড এবং ইনস্টল করুন।
২. একটি নতুন Node.js প্রজেক্ট তৈরি করা
নতুন প্রজেক্ট ফোল্ডার তৈরি করে সেখানে npm init কমান্ড রান করুন:
mkdir websocket-project
cd websocket-project
npm init -y
এটি একটি package.json ফাইল তৈরি করবে, যা আপনার প্রজেক্টের ডিপেনডেন্সি ম্যানেজ করতে সাহায্য করবে।
৩. WebSocket লাইব্রেরি ইনস্টল করা
Node.js এর জন্য Web Sockets কানেকশন ব্যবস্থাপনা করার জন্য ws লাইব্রেরি ইনস্টল করতে হবে:
npm install ws
এটি আপনার প্রজেক্টে ws লাইব্রেরি যুক্ত করবে, যা Web Sockets সার্ভার চালানোর জন্য ব্যবহৃত হবে।
৪. সার্ভার তৈরি করা
আপনার প্রজেক্ট ফোল্ডারে একটি নতুন server.js ফাইল তৈরি করুন এবং নিচের কোডটি লিখুন:
// server.js
const WebSocket = require('ws'); // 'ws' লাইব্রেরি ইমপোর্ট করা হচ্ছে
// সার্ভার তৈরি করা হচ্ছে
const wss = new WebSocket.Server({ port: 8080 });
// ক্লায়েন্ট কানেক্ট হলে এই ইভেন্ট ট্রিগার হবে
wss.on('connection', (ws) => {
console.log('A new client connected!');
// ক্লায়েন্টের কাছে বার্তা পাঠানো
ws.send('Welcome to the WebSocket server!');
// ক্লায়েন্ট থেকে মেসেজ পাওয়া গেলে
ws.on('message', (message) => {
console.log('Received: ' + message);
// ক্লায়েন্টকে রিপ্লাই পাঠানো
ws.send('Server received: ' + message);
});
// ক্লায়েন্ট ডিসকানেক্ট হলে
ws.on('close', () => {
console.log('A client disconnected.');
});
});
console.log('WebSocket server is running on ws://localhost:8080');
এখানে, একটি WebSocket সার্ভার তৈরি করা হয়েছে যা 8080 পোর্টে কাজ করবে। যখন ক্লায়েন্ট সংযুক্ত হবে, সার্ভার তাদের স্বাগতম জানাবে এবং ক্লায়েন্ট থেকে প্রাপ্ত মেসেজের রিপ্লাই করবে।
৫. ক্লায়েন্ট সাইড তৈরি করা
ক্লায়েন্ট সাইডের জন্য একটি index.html ফাইল তৈরি করুন এবং নিচের কোডটি লিখুন:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WebSocket Example</title>
</head>
<body>
<h1>WebSocket Client</h1>
<div id="messages"></div>
<input type="text" id="messageInput" placeholder="Type a message">
<button id="sendButton">Send Message</button>
<script>
// WebSocket কানেকশন তৈরি করা
const socket = new WebSocket('ws://localhost:8080');
// সার্ভারের সাথে কানেকশন স্থাপিত হলে
socket.onopen = function() {
console.log('Connected to the WebSocket server.');
};
// সার্ভার থেকে মেসেজ প্রাপ্ত হলে
socket.onmessage = function(event) {
const messagesDiv = document.getElementById('messages');
messagesDiv.innerHTML += `<p>Server: ${event.data}</p>`;
};
// কানেকশন বন্ধ হলে
socket.onclose = function() {
console.log('Disconnected from the WebSocket server.');
};
// Send button ক্লিক করলে মেসেজ পাঠানো
document.getElementById('sendButton').onclick = function() {
const message = document.getElementById('messageInput').value;
socket.send(message);
document.getElementById('messageInput').value = '';
};
</script>
</body>
</html>
এই HTML ফাইলটি একটি সিম্পল ক্লায়েন্ট তৈরি করবে, যেখানে আপনি মেসেজ লিখে Send Message বাটন ক্লিক করলে সার্ভারের সাথে ডেটা আদান-প্রদান করতে পারবেন। সার্ভার থেকে প্রাপ্ত মেসেজটি পৃষ্ঠায় দেখানো হবে।
৬. সার্ভার চালানো
এখন, আপনার সার্ভারটি চালাতে হবে। টার্মিনালে নিচের কমান্ডটি রান করুন:
node server.js
এটি Web Socket সার্ভার চালু করবে এবং ws://localhost:8080 এ কানেকশনের জন্য অপেক্ষা করবে।
৭. ক্লায়েন্টের সাথে সংযোগ স্থাপন
এখন, আপনার ব্রাউজারে index.html ফাইলটি ওপেন করুন। আপনি যে মেসেজটি পাঠাবেন, তা সার্ভারের কাছে যাবে এবং সার্ভার তার থেকে একটি রিপ্লাই পাঠাবে। ব্রাউজারে এই ইন্টারঅ্যাকশন দেখা যাবে।
সারাংশ
এই প্রজেক্টের মাধ্যমে আপনি একটি মৌলিক Web Sockets কানেকশন তৈরি করতে শিখলেন, যেখানে একটি Node.js WebSocket সার্ভার এবং একটি ক্লায়েন্ট সাইড HTML/JavaScript ইন্টারফেস রয়েছে। এটি একটি সহজ উদাহরণ, যা আপনাকে Web Sockets প্রটোকলের ধারণা দেয় এবং রিয়েল-টাইম ডেটা আদান-প্রদান কীভাবে কাজ করে তা বুঝতে সহায়তা করে।
Read more