Configurar WebSocket en servidor: Guía paso a paso

configurar WebSocket servidor

📅 Publicado el 14 de agosto, 2026 · Por Equipo RedServicio

Introducción a configurar WebSocket en servidor

El desarrollo web ya no es lo que era. Hace unos años bastaba con recargar la página para ver lo nuevo, pero ahora los usuarios esperan que la información fluya sola, sin interrupciones. Por eso, saber configurar WebSocket en servidor ha dejado de ser un extra curioso para convertirse en una herramienta casi indispensable. A diferencia del HTTP, donde el rollo es «yo te pido, tú me das» de manera unidireccional, WebSockets abre una puerta de doble vía. El servidor y el cliente hablan a la vez, en tiempo real.

Es lo que hay detrás de los chats modernos, de los juegos multijugador o de esas herramientas de colaboración donde ves escribir a tu compañero al instante. Vamos a ver cómo montar esto en tu entorno de hosting para que funcione rápido y no se caiga.

¿Por qué implementar WebSockets en tu proyecto?

Antes de poner manos a la tecla, hay que pararse un momento. ¿Por qué no usar las soluciones de antes? El polling o el long-polling son como llamar a la puerta cada cinco segundos para preguntar si hay novedades. Es ineficiente, genera tráfico por todas partes y añade una latencia que el usuario nota.

WebSockets mantiene una única conexión abierta. Persistente.

Lo mejor de este enfoque es:

  • Baja latencia: El mensaje llega en cuanto sale. Nada de reestablecer conexiones.
  • Ahorro de recursos: Te olvidas de la sobrecarga de encabezados HTTP en cada intercambio.
  • Mejor experiencia de usuario (UX): La interfaz se siente fluida, casi nativa.

Si la velocidad es crítica en tu aplicación, configurar bien el servidor no es opcional, es el principio de todo.

Requisitos previos y preparación del entorno

Necesitas un servidor que aguante el tipo. Las conexiones persistentes no son amigables con todos los entornos. En planes VPS o Dedicados como los de RedServicio.net no tendrás problema, pero cuidado con el hosting compartido básico: a menudo ponen trabas en los puertos o limitan el tiempo de ejecución de los procesos.

Revisa esta lista antes de empezar:

  1. Acceso SSH o terminal: Tocarás la línea de comandos para instalar dependencias y ajustar el firewall.
  2. Node.js, Python o PHP (con Ratchet o Swoole): Aunque hay más lenguajes, estos son los habituales en el lado del servidor.
  3. Un servidor web (Nginx o Apache): Hará de proxy inverso y gestionará el SSL.

Tip de experto: Si estás en local, comprueba que el firewall deja pasar el tráfico por el puerto que vayas a usar (el 8080 o 3000 son comunes para desarrollo, el 443 para cuando esto sea en serio).

Paso 1: Crear el servidor WebSocket con Node.js

Para el ejemplo nos iremos a Node.js y la librería ws. Es ligera y cumple sobradamente. Su trabajo será mantener las conexiones vivas y repartir los mensajes.

Empieza inicializando el proyecto e instalando lo necesario:

npm init -y
npm install ws

Crea un archivo server.js. Algo sencillo para escuchar conexiones:

const WebSocket = require(‘ws’);
const wss = new WebSocket.Server({ port: 8080 });

wss.on(‘connection’, (ws) => {
  console.log(‘Nuevo cliente conectado’);

  ws.on(‘message’, (message) => {
    console.log(‘Recibido: %s’, message);
    // Reenviar el mensaje a todos los clientes conectados
    wss.clients.forEach((client) => {
      if (client !== ws && client.readyState === WebSocket.OPEN) {
        client.send(message);
      }
    });
  });

  ws.on(‘close’, () => {
    console.log(‘Cliente desconectado’);
  });
});

Con este script tienes un servidor en el 8080. Cuando alguien entra, escucha lo que envíe y lo pasa a los demás. Un chat básico, pero efectivo.

Paso 2: Configurar Nginx como Proxy Inverso

Dejar el servidor WebSocket al descubierto en un puerto alto, como el 8080, no es buena idea en producción. Especialmente si quieres usar HTTPS y tu dominio. Aquí entra Nginx. Actuará como intermediario: recibe las peticiones en el 443 (HTTPS) y las pasa a tu aplicación Node.js.

Abre la configuración de tu sitio en Nginx (suele estar en /etc/nginx/sites-available/tu-dominio.com) y añade este bloque location:

server {
  listen 443 ssl http2;
  server_name tu-dominio.com;
  # … configuración de certificados SSL …

  location /ws {
    proxy_pass http://localhost:8080;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection «upgrade»;
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }
}

Fíjate bien en las cabeceras Upgrade y Connection. Son las que le dicen a Nginx: «ojo, aquí cambiamos del HTTP estándar a WebSocket». Sin esto, la conexión muere antes de nacer. Cuando termines, verifica y reinicia:

sudo nginx -t
sudo systemctl restart nginx

Paso 3: Seguridad y WebSocket Seguro (WSS)

No te confíes. Una conexión WebSocket sin cifrar (ws://) es un blanco fácil para ataques de tipo «Man-in-the-Middle». En producción, usa siempre WebSockets Seguros (wss://), que son WebSockets tunelizados con TLS/SSL.

Al configurar Nginx con tus certificados SSL (los de Let’s Encrypt son gratis y funcionan bien), cifras todo lo que va entre el cliente y Nginx. Luego, Nginx envía el tráfico ya descifrado a tu Node.js en localhost. Como eso pasa dentro del propio servidor, estás seguro.

Recomendación de seguridad: Cierra el puerto 8080 en el firewall para que solo acepte conexiones locales. Así evitas que alguien se conecte directamente a tu aplicación WebSocket saltándose a Nginx.

Ejemplo de código del lado del cliente (JavaScript)

Te falta el cliente. En tu HTML o JS frontend, usa la API nativa WebSocket:

const socket = new WebSocket(‘wss://tu-dominio.com/ws’);

socket.addEventListener(‘open’, function (event) {
  socket.send(‘¡Hola Servidor!’);
});

socket.addEventListener(‘message’, function (event) {
  console.log(‘Mensaje del servidor: ‘, event.data);
});

Fíjate en el wss:// y la ruta /ws. Es la misma que configuraste en Nginx. Así la conexión viaja por el canal seguro.

Solucionar problemas comunes

A veces las cosas no salen como se espera. La conexión se muere a los pocos minutos si nadie dice nada. Normalmente es culpa de los proxies o firewalls intermedios que cortan lo que consideran «conexiones muertas».

La solución es un mecanismo de latido (heartbeat). Es decir, que el cliente o el servidor envíen un paquete pequeño («ping») cada 30 o 60 segundos para avivar el fuego. En la librería ws hay opciones para esto, pero un simple script suele bastar:

const wss = new WebSocket.Server({
  port: 8080,
  clientTracking: true,
});

Preguntas Frecuentes

¿WebSockets funciona en hosting compartido?
Depende. Muchos hostings compartidos ponen límites a los puertos personalizados y a los procesos de larga duración. Para algo serio y robusto, vete a un VPS o dedicado.

¿Cuántas conexiones concurrentes puede soportar mi servidor?
Aquí entra en juego el hardware (RAM y CPU) y lo optimizado que esté tu código. Node.js se defiende bien por ser asíncrono, pero cada conexión come memoria. En un servidor bien tuneado puedes manejar miles sin problemas.

Conclusión

Al principio, configurar WebSocket en servidor puede dar un poco de respeto. Pero una vez lo tienes, la diferencia en la experiencia de usuario es brutal. Hemos visto desde levantar un servidor con Node.js hasta poner a Nginx como guardián para asegurar la conexión con WSS. No olvides que la infraestructura es clave. En RedServicio.net tenemos planes preparados para soportar este tipo de cargas, con soporte técnico 24/7 por si te atascas. Si no tienes claro qué hosting elegir para tu proyecto en tiempo real, pregunta a nuestro equipo; te echaremos una mano.

📝

Equipo RedServicio

Artículos escritos y revisados por nuestro equipo técnico especializado en hosting e infraestructura web en España.

¿Listo para un hosting de verdad?

Servidores en España · Soporte 24/7 en español · Migración gratuita

Ver Planes desde 3,95€/mes →

Te puede interesar:

Página GratisCrea tu web gratis

ClisecSeguridad informática

Scroll al inicio