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?

voix
5

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

En gros, 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 donner sur 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 ...

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

Merci!

Créé 27/08/2009 à 00:28
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
2

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

Mettre à jour:

Les délais d'attente sur une détection 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 ..

Créé 27/08/2009 à 00:31
source utilisateur

voix
1

Le délai d'attente varie entre les navigateurs lu. 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,

l'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 tout le contenu sont encore tiré normalement.

Créé 27/08/2009 à 01:09
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more