Quelle est une quantité sûre de temps que je peux attendre avant de répondre à un navigateur, sans avoir un délai d'attente?

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

  •  20-09-2019
  •  | 
  •  

Question

Je fais une application de chat qui fonctionne avec de longue interrogation pour émuler un « push » du serveur au client.

En fait, le navigateur demande des mises à jour, et je réponds s'il y a quelque chose de nouveau. Sinon, je garde la connexion ouverte sans répondre jusqu'à ce qu'il ya quelque chose à renvoyer.

Maintenant, si 30 secondes se sont écoulées et je n'ai pas envoyé quoi que ce soit, je fais parvenir une réponse, en disant essentiellement « NoNews », et le client interrogera à nouveau.

Ce que je veux faire est de garder évidemment cette connexion sans répondre aussi longtemps que possible, avant que le navigateur sera tout simplement le temps et renoncer à moi ... Je n'ai pas trouvé une bonne documentation sur ce que le délai d'attente du client est pour chaque navigateur, et il ne semble pas que c'est la même pour tous ...

a-un de vous fait une application à long sondages?
Toutes les idées que le plus long délai d'attente pourrait être sûr?

Merci!

Était-ce utile?

La solution

Le navigateur doit détecter un délai d'attente sur un XHR et faire une autre demande.

Mise à jour:

Détection de délais d'attente sur un XHR est en fait compliqué, car il est pas intégré pour une raison quelconque. Bien sûr, vous devrez également gérer 502/503 réponses, etc ..

Autres conseils

Le délai d'attente de lecture varie entre les navigateurs. Par exemple, ce sont des valeurs par défaut pour 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

Comme vous pouvez le voir, il grossit les heures supplémentaires.

Dans longue interrogation, délai d'attente est votre ami. Vous devriez en profiter, au lieu de l'éviter. Délai d'attente signifie que vous faites LONGEST vote possible avec le navigateur. Délai d'attente est une erreur que vous avez à gérer même sans longue interrogation donc il n'y a aucune charge supplémentaire.

Vous pouvez lire ma réponse à cette question,

interrogation d'un serveur HTTP du client J2ME

Bien que ce soit pour un client mobile, la plupart des règles applicables à AJAX également à long sondage. Plus précisément, je pense que vous bénéficierez d'un système de notification est utilisé que polling si longtemps pour la notification d'événements et tous les contenus sont toujours tiré normalement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top