Node.js এবং Express এর সাথে Socket.IO ইন্টিগ্রেট করে আপনি রিয়েল-টাইম, ডুয়াল-ডিরেকশনাল ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারেন। Express আপনাকে HTTP সার্ভার তৈরি করতে সাহায্য করবে, এবং Socket.IO আপনাকে সেই সার্ভারে রিয়েল-টাইম যোগাযোগের সুবিধা প্রদান করবে।
নিচে Node.js এবং Express এর সাথে Socket.IO ইন্টিগ্রেট করার জন্য একটি সোজা উদাহরণ দেওয়া হলো।
১. প্রজেক্ট সেটআপ
প্রথমে আপনার প্রজেক্ট ডিরেক্টরিতে Node.js এবং Express ইনস্টল করতে হবে।
১.১. নতুন প্রজেক্ট তৈরি করুন:
mkdir my-socket-app
cd my-socket-app
npm init -y১.২. প্রয়োজনীয় প্যাকেজ ইনস্টল করুন:
npm install express socket.io- express: Node.js জন্য জনপ্রিয় ওয়েব ফ্রেমওয়ার্ক
- socket.io: রিয়েল-টাইম, ডুয়াল-ডিরেকশনাল যোগাযোগের জন্য লাইব্রেরি
২. সার্ভার কোড তৈরি করুন
২.১. সার্ভার ফাইল তৈরি করুন (server.js):
// মডিউলগুলো ইম্পোর্ট করা
const express = require('express');
const http = require('http');
const socketIo = require('socket.io');
// Express অ্যাপ তৈরি করা
const app = express();
// HTTP সার্ভার তৈরি করা
const server = http.createServer(app);
// Socket.IO ইন্টিগ্রেশন
const io = socketIo(server);
// স্ট্যাটিক ফাইল সার্ভিং (যেমন HTML, CSS, JavaScript ফাইল)
app.use(express.static('public'));
// ক্লায়েন্ট কানেক্ট হলে সিডিউল করা
io.on('connection', (socket) => {
console.log('A user connected');
// ক্লায়েন্ট থেকে ডেটা গ্রহণ
socket.on('chat message', (msg) => {
console.log('message: ' + msg);
// সার্ভার থেকে ক্লায়েন্টে মেসেজ পাঠানো
io.emit('chat message', msg);
});
// কানেকশন বন্ধ হলে
socket.on('disconnect', () => {
console.log('User disconnected');
});
});
// পোর্টে অ্যাপ রান করা
server.listen(3000, () => {
console.log('Server running on http://localhost:3000');
});এখানে:
- express দিয়ে HTTP সার্ভার তৈরি করা হয়েছে।
- socket.io দিয়ে Socket.IO সার্ভার ইন্টিগ্রেট করা হয়েছে।
- ক্লায়েন্ট এবং সার্ভারের মধ্যে chat message ইভেন্টের মাধ্যমে বার্তা পাঠানো এবং গ্রহণ করা হচ্ছে।
৩. ক্লায়েন্ট ফাইল তৈরি করুন
৩.১. HTML ফাইল তৈরি করুন (public/index.html):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Socket.IO Chat</title>
<script src="/socket.io/socket.io.js"></script>
<script>
// Socket.IO ক্লায়েন্ট তৈরি করা
var socket = io();
// মেসেজ পাঠানোর জন্য
function sendMessage() {
var message = document.getElementById("message").value;
socket.emit('chat message', message);
document.getElementById("message").value = '';
}
// সার্ভার থেকে মেসেজ গ্রহণ করা
socket.on('chat message', function(msg) {
var node = document.createElement("LI");
var textnode = document.createTextNode(msg);
node.appendChild(textnode);
document.getElementById("messages").appendChild(node);
});
</script>
</head>
<body>
<h1>Socket.IO Chat</h1>
<ul id="messages"></ul>
<input id="message" autocomplete="off">
<button onclick="sendMessage()">Send</button>
</body>
</html>এখানে:
- socket.io.js স্ক্রিপ্টটি যুক্ত করা হয়েছে, যা ক্লায়েন্টে Socket.IO লাইব্রেরি লোড করবে।
- sendMessage() ফাংশনটি ব্যবহারকারীর ইনপুট গ্রহণ করে সার্ভারে পাঠাবে।
- socket.on('chat message') এর মাধ্যমে সার্ভার থেকে পাওয়া মেসেজ HTML-এ দেখানো হবে।
৪. অ্যাপ চালু করা
এখন আপনি server.js ফাইলটি চালু করতে পারেন:
node server.jsএটি সার্ভার চালু করবে এবং আপনি http://localhost:3000 ঠিকানায় গিয়ে ব্রাউজারে অ্যাপটি দেখতে পাবেন।
৫. ফলস্বরূপ
এখন আপনি দুটি বা তার বেশি ব্রাউজারে একই অ্যাপটি খুলতে পারবেন। একটি ব্রাউজার থেকে মেসেজ পাঠালে তা অন্য ব্রাউজারে রিয়েল-টাইমে দেখতে পারবেন।
সারসংক্ষেপ
এভাবে আপনি Node.js, Express, এবং Socket.IO এর সাহায্যে রিয়েল-টাইম ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারেন। এখানে ক্লায়েন্ট এবং সার্ভারের মধ্যে রিয়েল-টাইম ডেটা আদান-প্রদান করা হয়, যা চ্যাট অ্যাপ্লিকেশন বা অন্যান্য রিয়েল-টাইম সিস্টেমের জন্য খুবই উপযোগী।
Read more