J'ai un système client-serveur, écrit par mes deux côtés, et je voudrais mettre les clients dans un état 'déconnecté' quand le serveur se déconnecte/meurt, puis apporte automatiquement leur retour en ligne lorsque le serveur est à nouveau disponible.WCF - vérification du client pour la disponibilité du service
Pour la première partie, j'écoute les événements de défaillance de canal et gère cela en mettant le client hors ligne. Je commence alors à appeler un service 'ping' sur le serveur (toutes les 30 secondes) qui retourne juste un booléen s'il est vivant. Une fois qu'il est vivant, le client obtient le bool et revient en ligne. Tout cela fonctionne, le problème que j'ai est que lorsque le client appelle le service ping et le serveur est en panne, aucune réponse n'est envoyée (évidemment) et finalement, après environ 2 minutes, je reçois une exception non trouvée. A ce moment j'ai déjà essayé 3-4 pings de plus et j'ai donc 3-4 exceptions.
Ma question est, comment puis-je traiter avec le service de ping plus gracieusement? Idéalement, je voudrais appeler régulièrement un service qui me permet de savoir si elle est en ligne, et me fait savoir instantanément si ce n'est pas le cas.
Merci, Will
Merci Marc, bonne idée, c'est ce que j'ai fait. J'avais complètement oublié que l'on peut modifier les délais d'attente de liaison à la volée comme ça. – WillH
Comment détecter le serveur est déconnecté? –
@Ashutosh: si le serveur est déconnecté, votre appel échouera avec l'une des erreurs possibles ("non trouvé" ou "timeout" ou autre) –