WCF de Serveur à Client de la méthode de rappel avec la valeur de retour

J'ai tenté la question de différentes façons, consultez mon profil pour les deux autres questions en expliquant la difficulté que j'ai eu avec les approches que j'ai pris à ce scénario. Je vais passer ici.

J'ai juste besoin d'un exemple (C# de préférence) d'un serveur de retour d'appel vers un client (plus d'un nettcp canal), le client calcule une réponse, et renvoie un résultat.

  • Le serveur du thread appelant est bloqué jusqu'à ce que le client envoie la réponse.
  • Rappel du serveur est invité par un événement, comme une minuterie, pas un appel par le client.
  • Le client n'a pas besoin d'appel vers le serveur dans le contexte de rappel du serveur, il n'y a pas de blocage de défis.
  • Le client peut prendre (et pour cet exercice, devrait prendre) un ou plusieurs paramètres avec lequel effectuer le calcul
  • Le client peut retourner (et pour cet exercice, doit retourner) un non-nulle résultat
  • L'approche utilisée doit au moins être compatible, si ce n'est mis en œuvre, avec la capacité à gérer plusieurs clients à leur tour, y compris un abonnement() et de désabonnement() fonctionnalité.
  • Ce n'est pas de devoirs, c'est de servir comme un exemple de la façon de construire une basée sur WCF abonné/l'éditeur serveur qui prend en charge (peu) confiance des clients à faible latence de communication serveur-client sans interrogation et sans jeter les messages (par-dessus la clôture)
  • Je suis PAS spécifiquement intéressés par les solutions qui impliquent (IsOneWay = true), sauf lorsqu'il devient clair que je suis très confus au sujet de sa signification et de ses conséquences.

Merci!

OriginalL'auteur Jason Kleban | 2010-09-14