Socket.IO Introduction
Socket.IO কী, কীভাবে কাজ করে, core concepts — সম্পূর্ণ বাংলায় beginner গাইড।
Socket.IO হলো একটি JavaScript library যা server ও client-এর মধ্যে real-time, bidirectional (দুই-পথ) communication সম্ভব করে — যেখানে ডেটা দুই দিক থেকেই সাথে সাথে যায়। Chat, notification, live dashboard — যেকোনো realtime feature-এর ক্ষেত্রে এটি বহুল ব্যবহৃত।
শেখার লক্ষ্য
- Socket.IO কী এবং কেন এত জনপ্রিয় তা বোঝা
- Real-time communication-এর ধারণা পরিষ্কার করা
- Socket.IO-এর core building blocks চেনা — connection, event, room, namespace
- Socket.IO native WebSocket নয় — এই গুরুত্বপূর্ণ পার্থক্যটি বোঝা
Socket.IO কী?
Socket.IO মূলত দুইটি অংশ নিয়ে গঠিত:
- Server library —
socket.io(Node.js-এ চলে) - Client library —
socket.io-client(browser, React, Next.js, বা Node-এ চলে)
Server আর client প্রথমে একটি connection খোলে। তারপর তারা events দিয়ে ডেটা আদান-প্রদান করে — যেন একজন প্রতিটি বার্তার উপর নির্ভর করে কথা বলছে।
কীভাবে কাজ করে?
যখন client সংযুক্ত হয়, প্রথমে একটি HTTP handshake হয়। তারপর Socket.IO WebSocket transport-এ upgrade করে (যদি browser ও network তার অনুমতি দেয়)। WebSocket পাওয়া না গেলে সে HTTP long-polling ব্যবহার করে — ফলে প্রায় সব পরিবেশেই connection টিকে থাকে।
Core Concepts
| Concept | বাংলা ব্যাখ্যা |
|---|---|
| Connection | client ও server-এর মধ্যে স্থায়ী, দুই-পথের চ্যানেল |
| Event | নাম দেওয়া বার্তা — যেমন message, join, typing |
| Room | একাধিক socket-এর দল, যাদের নির্দিষ্টভাবে বার্তা পাঠানো যায় |
| Namespace | আলাদা ব্যবহারের জন্য connection-এর পৃথক channel (যেমন /admin) |
Socket.IO v4-এ কী কী আছে?
- Automatic reconnection — network পড়ে গেলেও client নিজে থেকে আবার যুক্ত হয়
- Fallback transports — WebSocket না পেলে long-polling চলে
- Acknowledgements — "বার্তাটি পাওয়া গেছে" এই স্বীকৃতি পাঠানো যায়
- Rooms ও Namespaces — বড় application-এর জন্য গঠন
- Broadcasting — সবাইকে বা নির্দিষ্ট দলকে একসাথে বার্তা
- Binary support — files, image, audio পাঠানো যায়
Socket.IO নিজস্ব protocol — এটি native WebSocket implementation নয়। WebSocket থাকে শুধু একটি transport (একটি সম্ভাব্য পরিবহন মাধ্যম)। Socket.IO তার উপরে একটি layer যোগ করে auto-reconnect, rooms, events, fallback ইত্যাদি।
Real-world Use Cases
- Chat application — WhatsApp-style group ও direct message
- Live notifications — নতুন message, alert, order update
- Multiplayer games — দুই বা ততোধিক player-এর মধ্যে realtime sync
- Collaborative editing — Google Docs-এর মতো একসাথে edit
- Live dashboard — stock price, server monitoring, analytics
পরবর্তী অধ্যায়ে দেখবো কেন Socket.IO ব্যবহার করবেন এবং এটি native WebSocket থেকে কীভাবে আলাদা।
Practice Task
- Socket.IO server ও client library-র নাম খুঁজে বের করুন (কোনটি কোন কাজে লাগে)
- Socket.IO-এর ৩টি core concept নিজের ভাষায় লিখুন
- মনে রাখুন: Socket.IO ≠ native WebSocket
সম্পর্কিত অধ্যায়: কেন Socket.IO ব্যবহার করবেন · Socket.IO vs WebSocket