Socket.IO এর মাধ্যমে Server এবং Client এর সংযোগ

Socket.IO এর বেসিক ব্যবহার (Basic Usage of Socket.IO) - সকেট.আইও (Socket.IO) - Computer Programming

359

Socket.IO ক্লায়েন্ট এবং সার্ভারের মধ্যে রিয়েল-টাইম, ডুয়াল-ডিরেকশনাল যোগাযোগ প্রতিষ্ঠা করতে ব্যবহৃত হয়। এটি Node.js এ কাজ করে এবং ওয়েবসাইট বা অ্যাপ্লিকেশনগুলিতে রিয়েল-টাইম ফিচার, যেমন চ্যাট, লাইভ নোটিফিকেশন ইত্যাদি তৈরি করতে সাহায্য করে। Socket.IO এর মাধ্যমে সার্ভার এবং ক্লায়েন্টের সংযোগ স্থাপন এবং ডেটা আদান-প্রদান করার জন্য নিচের ধাপগুলো অনুসরণ করতে পারেন।


১. Socket.IO ইন্সটল করা

প্রথমে, আপনার Node.js প্রজেক্টে Socket.IO ইন্সটল করতে হবে।

npm install socket.io

এটি আপনার প্রজেক্টের node_modules ফোল্ডারে Socket.IO লাইব্রেরি ইন্সটল করবে।


২. Socket.IO সার্ভার সেটআপ করা

Node.js এ Socket.IO সার্ভার তৈরি করতে আপনাকে HTTP server ব্যবহার করতে হবে। নিচে একটি সাধারণ সার্ভার সেটআপ দেখানো হল:

// সার্ভার সাইড কোড (Node.js)
const http = require('http');
const socketIo = require('socket.io');

// HTTP সার্ভার তৈরি করা
const server = http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain' });
  res.end('Socket.IO Server Running');
});

// Socket.IO সার্ভার ইন্সট্যান্স তৈরি করা
const io = socketIo(server);

// ক্লায়েন্ট সংযোগ হ্যান্ডল করা
io.on('connection', (socket) => {
  console.log('A user connected');
  
  // ক্লায়েন্ট থেকে একটি মেসেজ পাওয়া
  socket.on('chat message', (msg) => {
    console.log('Message received: ' + msg);
    
    // ক্লায়েন্টকে মেসেজ পাঠানো
    io.emit('chat message', msg);
  });

  // ক্লায়েন্ট ডিসকানেক্ট হওয়া
  socket.on('disconnect', () => {
    console.log('User disconnected');
  });
});

// সার্ভার চালু করা
server.listen(3000, () => {
  console.log('Server running on port 3000');
});

এখানে আমরা একটি HTTP সার্ভার তৈরি করেছি এবং Socket.IO সার্ভার ইন্সট্যান্স যুক্ত করেছি। যখন কোন ক্লায়েন্ট সংযোগ করবে, তখন connection ইভেন্ট ট্রিগার হবে এবং একটি সোকেট অবজেক্ট তৈরি হবে।


৩. Socket.IO ক্লায়েন্ট সেটআপ করা

ক্লায়েন্ট সাইডে Socket.IO ব্যবহারের জন্য আপনাকে Socket.IO ক্লায়েন্ট লাইব্রেরি ডাউনলোড করতে হবে। আপনি নিচের HTML কোডে <script> ট্যাগ ব্যবহার করে এটি সরাসরি লোড করতে পারেন:

<!-- ক্লায়েন্ট সাইড 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 Example</title>
  <script src="/socket.io/socket.io.js"></script>
</head>
<body>
  <h1>Socket.IO Client</h1>
  <input type="text" id="messageInput" placeholder="Type a message">
  <button onclick="sendMessage()">Send Message</button>
  
  <ul id="messages"></ul>

  <script>
    // Socket.IO সার্ভারে সংযোগ করা
    const socket = io();

    // সার্ভার থেকে মেসেজ পাওয়া
    socket.on('chat message', function(msg) {
      const li = document.createElement('li');
      li.textContent = msg;
      document.getElementById('messages').appendChild(li);
    });

    // মেসেজ পাঠানোর ফাংশন
    function sendMessage() {
      const message = document.getElementById('messageInput').value;
      socket.emit('chat message', message); // সার্ভারে মেসেজ পাঠানো
    }
  </script>
</body>
</html>

এখানে আমরা /socket.io/socket.io.js স্ক্রিপ্ট ফাইলটি ব্যবহার করছি, যা স্বয়ংক্রিয়ভাবে সার্ভার থেকে ক্লায়েন্টে লোড হয়। ক্লায়েন্ট যখন মেসেজ পাঠায়, এটি chat message ইভেন্টের মাধ্যমে সার্ভারে পাঠানো হয়। সার্ভার মেসেজটি সমস্ত সংযুক্ত ক্লায়েন্টে পাঠিয়ে দেয়।


৪. Socket.IO এর মাধ্যমে Server এবং Client এর সংযোগ

  1. সার্ভার এবং ক্লায়েন্ট একে অপরকে ইভেন্টের মাধ্যমে ডেটা পাঠাতে পারে।
  2. সার্ভার ও ক্লায়েন্ট উভয়ে ইভেন্টের মাধ্যমে ডেটা প্রেরণ এবং গ্রহণ করতে পারে।
  3. সার্ভার থেকে মেসেজ আসলে ক্লায়েন্ট তা পাবে এবং ক্লায়েন্ট থেকে মেসেজ সার্ভারে পৌঁছাবে।

৫. চালানো এবং পরীক্ষা করা

  1. সার্ভার চালানোর জন্য, টার্মিনালে নিচের কমান্ডটি ব্যবহার করুন:

    node server.js
  2. এরপর আপনার ব্রাউজারে http://localhost:3000 এ গিয়ে দেখতে পাবেন সার্ভার এবং ক্লায়েন্টের মধ্যে যোগাযোগ হচ্ছে।
  3. আপনি ক্লায়েন্ট সাইড থেকে একটি বার্তা পাঠালে, তা সার্ভারে যাবে এবং সার্ভার সেই বার্তা সমস্ত সংযুক্ত ক্লায়েন্টকে পাঠিয়ে দিবে।

সারসংক্ষেপ

Socket.IO এর মাধ্যমে সার্ভার এবং ক্লায়েন্টের মধ্যে রিয়েল-টাইম, ডুয়াল-ডিরেকশনাল যোগাযোগ তৈরি করা সম্ভব। এটি খুবই উপযোগী বিভিন্ন ধরনের অ্যাপ্লিকেশন যেমন চ্যাট সিস্টেম, লাইভ নোটিফিকেশন, এবং মাল্টিপ্লেয়ার গেম তৈরির জন্য। এর মাধ্যমে ইভেন্ট-ভিত্তিক ডেটা প্রেরণ এবং গ্রহণ অত্যন্ত সহজ হয়ে যায়।

Content added By
Promotion

Are you sure to start over?

Loading...