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

136
Vistas
K6 Websocket se desconecta después de 15 segundos

Tengo problemas para ejecutar un websocket K6 durante más de 15 segundos en 1 VU.

El código es de la documentación:

 const socketUrl = `${resBody.url.replace('https', 'wss')}&id=${connectionId}`; res = ws.connect(socketUrl, params, function (socket) { socket.on('open', function() { console.log('connected'); socket.setInterval(function timeout() { socket.ping(); }, 1000); var payload = JSON.stringify({ 'protocol': 'json', 'version': 1 }); socket.send(payload); }); socket.on('message', (data) => console.log('Message received: ', data)); socket.on('close', () => console.log('disconnected')); socket.on('error', (e) => console.log('Error: ', e.error())); socket.on('ping', function() { console.log('ping'); socket.pong(); }); socket.on('pong', () => console.log('pong')); socket.on('priceupdates', (data) => console.log('PriceUpdates: ', data)); socket.setTimeout(function () { console.log('Timeout'); socket.close(); }, 1000 * 60 * 100); }); check(res, { 'status is 101': (r) => r && r.status === 101 });

Ejecutar comando:

k6 ejecutar --vus 1 --iteraciones 1 --duración 1m --min-iteración-duración 30s live_prices.js

Y la salida:

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Encontré que necesitamos enviar un mensaje de apretón de manos justo después de que se establezca la conexión

 var payload = JSON.stringify({ 'protocol': 'json', 'version': 1 });

pero con Record Ending char (ASCII char 30) al final.

Así que terminé enviando:

 const endOfRecord = String.fromCharCode(30); var payload = JSON.stringify({ 'protocol': 'json', 'version': 1 }) + endOfRecord;

Después de eso todo comenzó a funcionar correctamente.

about 4 years ago · Juan Pablo Isaza Denunciar
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