io.on() এবং socket.emit() এর ব্যবহার

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

287

Socket.IO-তে io.on() এবং socket.emit() দুটি গুরুত্বপূর্ণ ফাংশন যা রিয়েল-টাইম যোগাযোগ পরিচালনা করতে ব্যবহৃত হয়। এগুলি সার্ভার এবং ক্লায়েন্টের মধ্যে ইভেন্ট হ্যান্ডলিং এবং ডেটা ট্রান্সফার করার জন্য ব্যবহৃত হয়। এখানে এগুলোর বিস্তারিত ব্যাখ্যা দেওয়া হলো।


1. io.on()

io.on() একটি ইভেন্ট লিসনার (event listener) যা সার্ভার সাইডে ক্লায়েন্টের সাথে ইন্টারঅ্যাকশন করার জন্য ব্যবহৃত হয়। এটি একটি ইভেন্টে কানেকশন হ্যান্ডল করতে ব্যবহৃত হয় এবং তখন ক্লায়েন্ট থেকে আসা কনভার্সেশন বা ডেটা অনুযায়ী কাজ করতে পারে। এটি সার্ভারের জন্য কাস্টম ইভেন্ট হ্যান্ডলিং ব্যবস্থা সরবরাহ করে।

Syntax:

io.on('event_name', callback);
  • event_name: এখানে যে ইভেন্টের জন্য লিসেন করা হবে তার নাম, যেমন 'connection', 'disconnect', বা অন্য কাস্টম ইভেন্ট।
  • callback: এটি একটি ফাংশন যা সেই ইভেন্ট ঘটলে ট্রিগার হয়। এই ফাংশনে প্রয়োজনীয় ডেটা বা কনটেক্সট অ্যাক্সেস করা যেতে পারে।

ব্যবহার:

const io = require('socket.io')(server);

// ক্লায়েন্ট যখন কানেক্ট করবে
io.on('connection', (socket) => {
  console.log('A user connected');

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

এখানে, io.on('connection', callback) ক্লায়েন্টের কানেকশন ইভেন্টে কাজ করবে। যখন ক্লায়েন্ট সার্ভারের সাথে সংযুক্ত হবে, তখন এটি callback ফাংশনকে ট্রিগার করবে, যেখানে socket এর মাধ্যমে সেই ক্লায়েন্টের সাথে যোগাযোগ করা যায়।

কাস্টম ইভেন্ট হ্যান্ডলিং:

socket.on('message', (data) => {
  console.log('Received message: ', data);
});

এখানে message হল কাস্টম ইভেন্ট নাম, যা ক্লায়েন্ট থেকে আসা বার্তা বা ডেটা গ্রহণ করতে ব্যবহৃত হয়।


2. socket.emit()

socket.emit() ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা প্রেরণ করতে ব্যবহৃত হয়। এই ফাংশনটি একটি ইভেন্ট ট্রিগার করে এবং সেই ইভেন্টের সাথে কিছু ডেটা পাঠায়। এটি ক্লায়েন্ট এবং সার্ভারের মধ্যে তথ্য আদান-প্রদান করার জন্য ব্যবহৃত হয়।

Syntax:

socket.emit('event_name', data);
  • event_name: এই ইভেন্টের নাম যা ক্লায়েন্ট বা সার্ভার ব্যবহার করবে। এটি হতে পারে একটি কাস্টম ইভেন্ট অথবা পূর্বনির্ধারিত ইভেন্ট।
  • data: এটি হচ্ছে সেই ডেটা যা ইভেন্টের সাথে প্রেরণ করা হবে। এটি একটি স্ট্রিং, অবজেক্ট বা অন্য যেকোনো ধরণের ডেটা হতে পারে।

ব্যবহার:

সার্ভার সাইডে:

const io = require('socket.io')(server);

io.on('connection', (socket) => {
  console.log('A user connected');
  
  // ক্লায়েন্টে মেসেজ পাঠানো
  socket.emit('message', 'Hello from server!');
  
  // যখন ক্লায়েন্ট থেকে মেসেজ আসবে
  socket.on('clientMessage', (data) => {
    console.log('Received message from client:', data);
  });
});

এখানে, socket.emit('message', 'Hello from server!') সার্ভার থেকে ক্লায়েন্টে একটি মেসেজ পাঠাচ্ছে।

ক্লায়েন্ট সাইডে:

<script>
  var socket = io();

  // সার্ভার থেকে মেসেজ গ্রহণ করা
  socket.on('message', (data) => {
    console.log('Message from server:', data);
  });

  // সার্ভারে মেসেজ পাঠানো
  socket.emit('clientMessage', 'Hello from client!');
</script>

এখানে, socket.emit('clientMessage', 'Hello from client!') ক্লায়েন্ট থেকে সার্ভারে একটি মেসেজ পাঠাচ্ছে।


সার্ভারের সাথে ডেটা আদান-প্রদান

socket.emit()io.on() একসাথে ব্যবহার করে আপনি খুব সহজেই সার্ভার এবং ক্লায়েন্টের মধ্যে ডেটা আদান-প্রদান করতে পারেন। যেমন:

সার্ভার সাইড:

io.on('connection', (socket) => {
  console.log('A user connected');
  
  // সার্ভার থেকে ক্লায়েন্টে মেসেজ পাঠানো
  socket.emit('welcome', 'Welcome to the chat!');
  
  // ক্লায়েন্ট থেকে মেসেজ গ্রহণ করা
  socket.on('chatMessage', (message) => {
    console.log('Received message from client: ', message);
  });
});

ক্লায়েন্ট সাইড:

// সার্ভার থেকে ওয়েলকাম মেসেজ গ্রহণ করা
socket.on('welcome', (message) => {
  console.log(message);  // 'Welcome to the chat!'
});

// সার্ভারে মেসেজ পাঠানো
socket.emit('chatMessage', 'Hello, this is a message!');

এখানে, সার্ভার ক্লায়েন্টে 'welcome' ইভেন্ট পাঠাচ্ছে এবং ক্লায়েন্ট সার্ভারে 'chatMessage' ইভেন্ট পাঠাচ্ছে।


সারসংক্ষেপ

  • io.on(): সার্ভারে ইভেন্ট হ্যান্ডলিংয়ের জন্য ব্যবহৃত হয়, যেমন ক্লায়েন্ট কানেক্ট বা ডিসকানেক্ট হওয়ার পর কার্যক্রম পরিচালনা করা বা কাস্টম ইভেন্টের জন্য অপেক্ষা করা।
  • socket.emit(): ক্লায়েন্ট এবং সার্ভারের মধ্যে ইভেন্ট ট্রিগার করে ডেটা পাঠানোর জন্য ব্যবহৃত হয়। এটি ডেটা পাঠাতে এবং গ্রহণ করতে ব্যবহার করা হয়।

এগুলি Socket.IO এর রিয়েল-টাইম ডেটা ট্রান্সফার এবং ইভেন্ট-ভিত্তিক যোগাযোগ ব্যবস্থার মূল ভিত্তি।

Content added By
Promotion

Are you sure to start over?

Loading...