Express.js Masterclass
The Professional Backend Framework01.Home02.Introduction03.Express vs Native Node04.Express Generator05.Request Object (req)06.Response Object (res)07.Advanced Routing08.URL Params & Query09.Body Parsing10.Template Engines (EJS)11.Serving Static Files12.Middleware Architecture13.Must-Have Middleware14.File Uploads (Multer)15.Custom Error Handling16.Cookies & Sessions17.User Auth (Passport)18.Database Integration19.Data Validation20.Socket.io in Express21.Security & Helmet
Socket.io in Express
Sometimes HTTP isn't enough. For features like chat, live notifications, or collaborative editing, you need WebSockets. Socket.iois the most popular library for this in the Node/Express ecosystem.
1. Installation
npm install socket.io2. Server Integration
Socket.io needs a raw HTTP server to attach to. We wrap the Express app.
const express = require('express');
const http = require('http');
const { Server } = require('socket.io');
const app = express();
const server = http.createServer(app);
const io = new Server(server);
io.on('connection', (socket) => {
console.log('A user connected');
socket.on('chat message', (msg) => {
io.emit('chat message', msg); // Broadcast to everyone
});
});
server.listen(3000);3. Key Concepts
- Emit: Sending a message.
- On: Listening for a message.
- Broadcast: Sending to everyone except the sender.
- Rooms: Grouping sockets for private messaging.
4. Use Cases
- Real-time Dashboards.
- Collaborative Editors (like Google Docs).
- Instant Messengers.
- Live Binary Streaming.
Note: Socket.io is not just WebSockets; it provides fallback to long-polling for older browsers and automatically handles reconnection.