¿Qué es una cantidad segura de tiempo que puedo esperar antes de responder a un navegador, sin conseguir un tiempo de espera?

StackOverflow https://stackoverflow.com/questions/1338123

  •  20-09-2019
  •  | 
  •  

Pregunta

Estoy haciendo una aplicación de chat que funciona con largo de votación para emular un "empuje" del servidor al cliente.

Básicamente, el navegador solicita actualizaciones, y me respondió que si hay algo nuevo. De lo contrario, me quedo con la conexión abierta sin responder hasta que haya algo que enviar de vuelta.

Ahora, si 30 segundos han pasado y no han enviado nada, entonces lo hago enviar una respuesta, diciendo básicamente "NoNews", y el cliente va a sondear de nuevo.

Lo que quiero hacer es, obviamente, mantener esta conexión, sin responder por el tiempo que sea posible, antes de que el navegador simplemente el tiempo de espera y renunciar a mí ... No he encontrado una buena documentación sobre lo que el tiempo de espera del cliente es para cada navegador, y no parece como que es la misma para todos ellos ...

¿Alguno de ustedes presentó una solicitud de sondeo-tiempo?
Cualquier idea lo que podría ser más largo el tiempo de espera segura?

Gracias!

¿Fue útil?

Solución

El navegador debería detectar un tiempo de espera en un XHR y hacer otra solicitud.

Actualización:

La detección de los tiempos de espera en un XHR es realmente complicado, ya que no está incorporado por alguna razón. Por supuesto, también tendrá que manejar 502/503 respuestas, etc ..

Otros consejos

El tiempo de espera de lectura varía entre los navegadores. Por ejemplo, estos son valores predeterminados para IE,

Internet Explorer 4.0 and Internet Explorer 4.01 - 5 minutes
Internet Explorer 5.x and Internet Explorer 6.x - 60 minutes
Internet Explorer 7 and Internet Explorer 8 - 60 minutes

Como se puede ver, se hace más grande el tiempo extra.

En sondeo largo, tiempo de espera es su amigo. Usted debe tomar ventaja de ella, en vez de evitarla. Tiempo de espera significa que está haciendo el sondeo más largo posible con el navegador. Tiempo de espera es un error que tiene que manejar incluso sin sondeo largo así que no hay carga adicional.

Es posible que desee leer mi respuesta a esta pregunta,

sondeo de un servidor HTTP del cliente J2ME

A pesar de que es para un cliente móvil, se aplican a la mayoría de las reglas AJAX sondeo largo también. En concreto, creo que usted se beneficiará de un sistema de notificación tanto tiempo de votación sólo se utiliza para la notificación de eventos y todo su contenido todavía se extraen normalmente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top