socket.io client délai d'attente de reconnexion
Je suis à l'aide d'une douille.io node.js et j'aime bien la solution. Le seul problème que je remarque, c'est autour d'une déconnexion et de reconnexion.
Ce sont mes réglages actuels:
'connect timeout': 1000,
'reconnect': true,
'reconnection delay': 300,
'max reconnection attempts': 10000,
'force new connection':true
Je remarque que si j'ai arrêter et démarrer le node.js processus le client se connecte à l'arrière fine et rapidement, cependant, si le serveur est hors ligne pour un couple de minutes, le client ne se reconnecte ou prend un très long (non convivial) quantité de temps à.
Je voulais vous demander si il ya quelque chose que j'ai raté ou pourrait ajouter à la prise.io configuration de garder le client d'interrogation pour une reconnexion.
Je sais que "la reconnexion delay":
reconnexion délai par défaut
500
msLe délai d'attente initiale pour commencer, une reconnexion, c'est augmentée à l'aide d'un
exponentielle hors de l'algorithme à chaque fois une nouvelle tentative de reconnexion
a été faite.
Mais l'effet exponentiel son pas très convivial. Est-il un moyen de garder le contrôle pour une connexion de chaque période X - eg: 5 secondes.
Si non, je suppose que je peux écrire un peu de JS côté client pour vérifier la connexion et essayez les reconnexions, si nécessaire, mais ce serait bien si le socket.io client offert cette.
thx
OriginalL'auteur Adam | 2013-12-13
Vous devez vous connecter pour publier un commentaire.
J'ai peur que la reconnexion de l'algorithme ne peut pas être modifié (en décembre 2013); la Github problème pour permettre cette fonctionnalité n'est pas encore fusionné. Cependant, l'un des auteurs ont proposé une petite solution de contournement, ce qui devrait annuler l'augmentation exponentielle:
L'autre approche est, comme vous l'avez dit, d'écrire un peu de code côté client pour remplacer la reconnexion de comportement, et à ne les sondages. Voici un exemple de la façon dont cela pourrait être fait.
EDIT: le code ci-dessus devront aller à l'intérieur du décalage de rappel d'événement:
ressemble à son piratage de la socket.io-client.js fichier...
La solution de contournement serait aller à l'intérieur de votre décalage de gestionnaire d'événements. Vérifier mon montage
OriginalL'auteur verybadalloc
Il y a une option de configuration,
reconnection limit
(voir La Configuration De La Prise.IO):Elle peut être définie comme suit:
Lorsqu'elle est définie, le délai de reconnexion va continuer à augmenter (selon l'algorithme de back-off), mais seulement jusqu'à concurrence du maximum de la valeur que vous spécifiez.
OriginalL'auteur Lukas
C'est la solution, je suis allé avec - lorsque le socket se déconnecte, il entre dans une boucle qui continue d'essayer de se reconnecter toutes les 3 secondes jusqu'à ce que la connexion est créée - fonctionne un régal:
acclamations
OriginalL'auteur Adam