2008-10-29 4 views
8

J'aime utiliser les rappels WCF quand je le peux car pour moi, il vaut mieux que le client ait besoin d'interroger le serveur et son temps plus réel que l'interrogation. La question que j'ai est quand je m'abonne à un événement de service de WCF est là n'importe quel genre de battement de coeur qui maintient la connexion vivante entre le client et le serveur. Je commence à penser qu'il n'y a pas parce que quand le serveur disparaît l'abonnement est perdu et le client ne jette pas une exception (pourrait être l'exception est avalée par l'exécution de WCF). La même chose est vraie pour le serveur, lorsque le client s'en va et que le serveur tente d'invoquer le rappel et que l'exception est lancée. Des pensées?Les rappels WCF et le trafic réseau

Merci

Répondre

3

Il y a une bonne brève description du contrat Duplex (WCF) de callbacks dans ce link. Le contrat duplex est fondamentalement deux canaux unidirectionnels et il n'y a pas de corrélation de message implicite. Vous avez raison, il n'y a aucun message "heartbeat" impliqué, seul le trafic d'établissement de liaison wsHTTP normal se produit lors d'un appel duplex.

J'ai déclenché le renifleur de trafic HTTP appelé Fiddler2 (un outil Microsoft non pris en charge) pour vérifier le trafic de la session. N'a pas vu de communication "heartbeat" HTTP sous le capot survenant pendant et après les appels de service. J'ai laissé le client courir pendant un bon moment. Bonne question, ça m'a fait creuser un peu.

0

Je suis allé de l'avant et j'ai créé un rythme cardiaque récurrent pour les clients abonnés (essentiellement un appel à une fonction qu'ils hébergent).

J'ai exécuté ceci pendant des heures et cela fonctionne, ceci aide à assurer la connexion.

Questions connexes