Introducción a WebSockets
WebSockets permite que los navegadores y servidores se comuniquen de forma bidireccional sin la necesidad de recargar la página. A diferencia del HTTP tradicional, que sigue un modelo de solicitud-respuesta, WebSockets mantiene una conexión abierta, lo que reduce la latencia y mejora la eficiencia en aplicaciones en tiempo real.
Cómo funcionan los WebSockets
-
El cliente inicia una conexión con el servidor mediante un handshake HTTP.
-
Una vez establecida, se abre un canal de comunicación persistente.
-
Tanto el cliente como el servidor pueden enviar mensajes en cualquier momento.
Ventajas de WebSockets
-
Comunicación bidireccional y en tiempo real.
-
Reducción de ancho de banda al evitar múltiples solicitudes HTTP.
-
Ideal para chats, notificaciones, dashboards y juegos online.
Ejemplo práctico con Node.js y Socket.io
Servidor (Node.js):
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('Usuario conectado');
socket.on('mensaje', (data) => {
io.emit('mensaje', data);
});
socket.on('disconnect', () => {
console.log('Usuario desconectado');
});
});
server.listen(3000, () => {
console.log('Servidor escuchando en puerto 3000');
});
Cliente (HTML + JS):
const socket = io('http://localhost:3000');
socket.on('mensaje', (data) => {
console.log('Nuevo mensaje:', data);
});
function enviarMensaje(msg) {
socket.emit('mensaje', msg);
}
Casos de uso más comunes
-
Chats en tiempo real para sitios web.
-
Notificaciones push sin recargar la página.
-
Dashboards dinámicos para mostrar datos de sensores o finanzas.
-
Juegos online multijugador en tiempo real.
CONCLUSIÓN
WebSockets es una herramienta esencial para cualquier desarrollador que busque interactividad y velocidad en sus aplicaciones web. Con Node.js y Socket.io, es posible implementar soluciones prácticas de manera rápida y eficiente.
- Debes estar logueado para realizar comentarios