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

203
Views
¿Por qué Firefox no espera la conexión WebSocket?

Estoy escribiendo una aplicación que primero intenta abrir una conexión WebSocket (para asegurarse de que no haya otras abiertas; verificación de colisión de direcciones) antes de activar un protocolo personalizado que iniciará un servidor WebSocket único con la dirección que le indica el navegador. . Toda la comunicación se realiza a través de localhost y algún número de puerto arbitrario, digamos 3000. No estoy haciendo nada especial, solo intento abrir un WebSocket:

 var socket = new WebSocket("ws://localhost:3000/MyApp/"); socket.onclose = function(e) { console.error(e); }

Al realizar pruebas en Chrome, el WebSocket permanecerá en el estado CONECTANDO durante un tiempo, lo cual es ideal, ya que nos da algo de tiempo para iniciar la aplicación a través del protocolo personalizado. Pero en Firefox, el WebSocket se cierra inmediatamente con el código 1006 y no puedo entender por qué.

Intenté cambiar la configuración about:config network.websocket.timeout.open para que sea 1000 (de 20), pero eso no ayuda. También encontré esta publicación relacionada: Websockets: ¿diferencias de Chrome y Firefox? . Eso tampoco me ha llevado a encontrar una respuesta.

¿Qué me estoy perdiendo?

Actualización 16/11/21
Estoy usando Dev Tools en Chrome y FF para revisar las solicitudes. Lo extraño es que Chrome en realidad envía un encabezado de solicitud como era de esperar, pero en FF, la solicitud está completamente vacía (0 bytes). ¿Quizás este es un problema con FF que no admite la depuración de WebSockets nativos (no hay bibliotecas contenedoras en uso)? ¿Hay alguna configuración de FF que anule la solicitud? Pero aún más confuso es que el navegador accedería al evento de cierre sin siquiera acceder al evento de apertura.

Actualización 17/11/21
Me doy cuenta de que tal vez esto tenga algo que ver con el lanzamiento de un controlador de protocolo personalizado. Me di cuenta de que esperará un segundo para intentar conectarse a un servidor web si no se inicia un CPH, pero luego, cuando inicio un CPH, es cuando cierra inmediatamente el WebSocket. El CPH se inicia a través de un enlace dirigido a "_parent".

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

0

Parece que el protocolo personalizado está causando que FF deje de intentar conectarse antes de tiempo. Creé un elemento de anclaje, <a>, en el código JS y llamé a "hacer clic ()" en él después de construirlo. No importa qué objetivo le di (por ejemplo, _self), haría que el intento de conexión se detuviera.

En pocas palabras, iniciar un enlace, ya sea un clic, abrir una ventana o reemplazar una ubicación, ¡hará que Firefox elimine cualquier WebSockets de sondeo actual!

La solución es simplemente usar un iframe para iniciar el protocolo personalizado.

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!