Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

178
Views
¿Cómo manejar todos los errores de WebSocket sin una carrera?

Cuando ejecuto código

 var ws = new WebSocket("wss://mydomain.example/socket/service"); ws.addEventListener("error", function (error) { console.error("Got error=", error); });

¿Es posible que la conexión WebSocket falle (emita error ) antes de que pueda adjuntar el detector de eventos para el evento de error ?

Mirando la documentación https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/WebSocket No puedo ver este detalle documentado en ninguna parte.

De acuerdo con la especificación WHATWG , parece que el constructor debe ejecutar la solicitud en paralelo . ¿Hay alguna garantía de que pueda adjuntar el detector de errores antes de que surjan posibles errores?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

El constructor de WebSocket se ejecuta sin sincronización de ningún tipo y la conexión puede encontrar un error antes de la línea con ws.addEventListener("error", ...); ¡es ejecutado! Sin embargo, esto no es un problema porque la especificación también dice que, en caso de error, el evento de error real se activa como parte de los pasos que deben ponerse en cola como una tarea. En la práctica, esto significa que, lógicamente, se requiere que el constructor de WebSocket se comporte como si fuera a ejecutar una función anónima con cero tiempo de espera que activa el evento de error .

Por lo tanto, el error real puede ocurrir antes de que el código JS pueda adjuntar el detector de eventos, pero todos los eventos ( open , close , error , message ) solo se pueden activar con retraso después de que se ejecute el bucle de eventos la próxima vez, por lo que el código anterior siempre tendrá tiempo. adjunte los controladores de eventos antes de que se puedan activar los eventos.

Consulte https://github.com/whatwg/websockets/issues/13#issuecomment-1039442142 para obtener más detalles.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!