Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

137
Vistas
La asignación de nuevos websockets genera múltiples clientes

En la aplicación web, intento volver a conectarme a un servidor websocket si el canal se desconecta:

 let ws = null; let connected = false; const extractHostname = function (url) { let hostname; if (url.indexOf("://") > -1) hostname = url.split("/")[2]; else hostname = url.split("/")[0]; hostname = hostname.split(":")[0]; hostname = hostname.split("?")[0]; return hostname; }; const composeWsAddress = function (address) { let scheme = "ws"; if (document.location.protocol === "https:") scheme += "s"; return scheme + "://" + address + ":8000/ws"; }; const open = function (address) { console.log("connecting..."); ws = new WebSocket(address); ws.onopen = onOpen; ws.onclose = onClose; ws.onmessage = onMessage; ws.onerror = onError; }; const close = function () { if (ws) ws.close(); connected = false; }; var onOpen = function() { connected = true; console.log("connected!"); }; var onClose = function() { ws = null; console.log("connection closed!"); setTimeout(reconnect, 3000); }; var onMessage = function(event) { }; var onError = function(event) { ws = null; console.log("connection error!"); setTimeout(reconnect, 3000); }; WebSocketClient = { init: function() { } }; function reconnect() { const address = composeWsAddress(extractHostname(location.href)); open(address); } $(function() { WebSocketClient.init(); reconnect(); });

Para probarlo sigo este procedimiento:

  1. iniciar el servidor
  2. ejecuta el código del cliente -> se conecta
  3. detener el servidor
  4. el cliente se desconecta y cada 3 segundos intenta volver a conectarse
  5. reiniciar el servidor -> se conecta de nuevo

pero el servidor ahora dice que hay muchos clientes conectados: uno para cada intento fallido.

Aquí aprendo que no hay necesidad en javascript de "eliminar" un objeto creado con la new palabra clave. Así que no estoy seguro de dónde está mi error.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda