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

223
Vistas
WebSocket.onopen no funciona correctamente, se ejecuta cuando la conexión aún se está conectando

Estoy escribiendo un proyecto vue con WebSocket. Escribo el código de WebSocket-Client en un módulo. Codifico como a continuación:

 //websocket.js var graphqlWSClient = new WebSocket("ws://localhost:8000", "graphql-transport-ws") function isOpened(){ return graphqlWSClient.readyState == 1 } export function initialClient(){ graphqlWSClient.onopen = function (eve) { graphqlWSClient.send(JSON.stringify({"type":"connection_init","payload":{}})) } } //Heartbeat function to detect whether connenction working export function testHeart(){ setInterval(()=>{ if(isClosed()){ graphqlWSClient = new WebSocket("ws://localhost:8000", "graphql-transport-ws") graphqlWSClient.onopen = function(eve){ //!!!NOT WORK console.log(eve) console.log("state:",graphqlWSClient.readyState) graphqlWSClient.send(JSON.stringify({"type":"connection_init","payload":{}})) } } try { graphqlWSClient.send(JSON.stringify({"type":"ping"})) } catch (error) { console.log(error) } },3000) }

En el componente de vue, lo uso como se muestra a continuación:

 import * as graphqlSocket from '@/utils/websocket' //In created(): graphqlSocket.initialClient() graphqlSocket.testHeart()

En la función testHeart() , espero que reinicie la conexión cuando se cierra la conexión (ya sea que el servidor o el cliente la cierren). Pero cuando lo pruebo, el graphqlWSClient.onopen parece funcionar instantáneamente, no funciona hasta que se abre la conexión, error de lanzamiento de la consola:

 state: 0 Uncaught DOMException: Failed to execute 'send' on 'WebSocket': Still in CONNECTING state. at graphqlWSClient.onopen

¿Alguien puede decirme por qué? 😢😢😢

about 4 years ago · Santiago Trujillo
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