TechLead
Intermedio
30 min
Guía completa

Socket.io

Usa Socket.io para comunicación en tiempo real con reconexión automática y fallbacks

¿Qué es Socket.io?

Socket.io es una librería que simplifica la comunicación en tiempo real. Incluye reconexión, fallback a long‑polling y una API basada en eventos.

Servidor

const http = require('http');
const { Server } = require('socket.io');

const server = http.createServer();
const io = new Server(server, { cors: { origin: '*' } });

io.on('connection', (socket) => {
  socket.emit('welcome', { message: 'Hola' });

  socket.on('chat', (msg) => {
    io.emit('chat', msg); // broadcast
  });
});

server.listen(3000);

Cliente

import { io } from 'socket.io-client';

const socket = io('http://localhost:3000');

socket.on('connect', () => {
  socket.emit('chat', { text: 'Hola' });
});

socket.on('chat', (msg) => {
  console.log(msg);
});

Rooms y namespaces

// Rooms
socket.join('room-1');
io.to('room-1').emit('message', 'Hola sala');

// Namespaces
const admin = io.of('/admin');
admin.on('connection', (socket) => {
  socket.emit('ready');
});

ACKs (confirmaciones)

socket.emit('save', data, (response) => {
  console.log('Servidor respondió:', response);
});

💡 Ventajas clave

  • ✓ Reconexión automática
  • ✓ API de eventos simple
  • ✓ Fallbacks HTTP
  • ✓ Rooms, namespaces y middlewares