2009-12-01 9 views
1

Je suis en train de concevoir une fonction de discussion basée sur le Web pour une application qui fonctionnera comme un chat sur facebook ou une conversation google dans Gmail. Je me demande si quelqu'un a des conseils sur la fréquence à laquelle il devrait vérifier les mises à jour? Toutes les 2 secondes? Toutes les 5 secondes? 10 secondes?À quelle fréquence un client de messagerie Web doit-il vérifier les mises à jour?

De même, dois-je appeler setTimeout dans la fonction de rappel de setTimeout ou dans le rappel de la requête ajax pour les mises à jour? Fondamentalement, devrait-il être n secondes entre les appels, ou n secondes entre l'achèvement de la dernière demande et le début de la suivante?

Merci

Répondre

5

Vous pouvez utiliser quelque chose comme Comet (AKA reverse AJAX) pour avoir une connexion persistante au lieu de faire un ping sur le serveur plusieurs fois.

sinon, je dirais que 2-3 secondes devrait être une bonne gamme. Tout ce qui est plus bas mettrait un stress excessif sur le serveur, et tout ce qui est plus long rendrait l'application léthargique.

0

Cependant souvent mises à jour. Cela signifie que vous pouvez profiler votre propre système et déterminer le moment optimal pour vérifier les mises à jour par rapport à la charge.

5

Je le rendrais dynamique. Déterminez une plage dont vous ne voulez pas sortir, comme 2 à 10 secondes, et commencez à un certain point, disons 5 secondes. Si vos sondages renvoient toujours de nouveaux messages, réduisez la période d'attente vers votre minimum. Si les sondages commencent à être vides, augmentez vers le maximum. Cela vous donnera un juste équilibre entre la réactivité en cas de besoin et de donner une pause à votre serveur lorsque rien ne se passe beaucoup.

1

Avez-vous envisagé une approche event based? De cette façon, vous obtiendrez un comportement en temps réel, économiserez des ressources et vous éviterez d'avoir à créer un intervalle d'interrogation intelligent. Si, pour une raison quelconque, vous devez utiliser l'interrogation, j'accompagnerais un intervalle de démarrage court, soit environ le double de la durée moyenne d'une notification, puis j'augmenterai l'intervalle de temps en temps s'il y a Il n'y avait rien de nouveau à éviter de marteler inutilement votre serveur. Bien qu'en général une bonne réponse dépend vraiment de ce que fait votre système.

Pour le clavardage, l'événementiel est le moyen idéal d'y aller.