2010-07-01 4 views
0

Je ne suis pas sûr de ce que la méthode ou le nom correct pour faire ce que je veux faire est appelé, ou comment il est mis en œuvre. Mon but est de configurer un client qui peut être mis à jour à partir du serveur sans un appel au serveur.WCF/Service Web: liaison de données? Rappeler? Async? Je ne suis pas sûr

En fait, le scénario suivant:

  1. client (1) Les appels de service Web (de GetListOfProducts)
  2. Server renvoie un tableau (A, B, C, D) au client (1). Le client (2) appelle le service Web (UpdateProductList) pour supprimer le produit C.
  3. Le serveur supprime le produit C de la liste et renvoie le succès au client (2).
  4. Server met à jour le client (1).
  5. Client (1) met à jour sa zone de liste et supprime l'élément C de la liste.

L'étape 5 est-elle même possible? Avoir le serveur mettre à jour un client quand les données précédentes demandées sont changées? Il semble que cela nécessite une liaison de données, mais peut-il être fait à travers un service Web? Oh, et est-ce possible de le faire en utilisant HTTP Soap?

Répondre

2

Oui; C'est ce qu'on appelle un WCF Callback. Voir aussi les "gotcha" listés here; ils deviennent un peu complexes quand on considère la réentrance, les instances multiples et le multithreading.

+0

Liens très utiles et heureux de savoir que le terme à utiliser est "Rappel WCF" lors de la recherche d'exemples et d'aide ... –

0

L'étape est très possible - ce dont vous avez besoin est un protocole standard permettant au serveur d'envoyer des modifications aux clients. Les clients s'inscrivent pour des changements, évidemment. Il y a plusieurs façons - des rappels aux sondages réguliers. Rien de particulièrement difficile, mais la réentrance peut être difficile si vous ne faites pas face à plusieurs threads régulièrement.