WebSockets — persistent bidirectional connection between client and server.
Using ws library:
1const { WebSocketServer } = require("ws");2const http = require("http");34const server = http.createServer();5const wss = new WebSocketServer({ server });67wss.on("connection", (ws, req) => {8 console.log("Client connected");910 ws.on("message", (data) => {11 const message = JSON.parse(data);12 // Broadcast to all clients13 wss.clients.forEach((client) => {14 if (client.readyState === WebSocket.OPEN) {15 client.send(JSON.stringify(message));16 }17 });18 });1920 ws.on("close", () => console.log("Client disconnected"));21 ws.send(JSON.stringify({ type: "welcome" }));22});2324server.listen(8080);
Using Socket.IO (higher level):
1const { Server } = require("socket.io");2const io = new Server(server);34io.on("connection", (socket) => {5 socket.join("room1");6 socket.to("room1").emit("message", "hello");7 socket.on("disconnect", () => {});8});
Key points: