Salut
J aimerais pouvoir utiliser des evenements dans une service WCF.
J ai trouve ceci :
http://wcftutorial.net/WCF-Events.aspx
Est ce comme cela ? Y a t il plus simple ?
Merci d avance
Salut
J aimerais pouvoir utiliser des evenements dans une service WCF.
J ai trouve ceci :
http://wcftutorial.net/WCF-Events.aspx
Est ce comme cela ? Y a t il plus simple ?
Merci d avance
Salut,
Je viens de lire le tuto que tu as fourni dans ton post. Ce que l'auteur fait dans son tuto est qu'il utilise juste une des parties du MEP (Message Exchanging Pattern) et y ajoute le notion d'évènement qui me semble pas être utile dans le cas d'un MEP Duplex.
WCF fournit 3 MEPs :
- Request-Réponse : le client envoie une requête et attend une réponse du service
- One-Way : le client envoie une requête et n'attend rien du service. Il s'en fout de ce qui peut arriver qu'il s'agisse d'un succès ou d'un échec.
- Duplex : le client envoie une requête, continue ce qu'il fait sans attendre la réponse du service. Le service une fois qu'il a terminé l'exécution de la demande du client, alors il notifie celui-ci en faisant appel à une des méthodes que le client aura implémentée à travers le contrat de callback.
Je ne connais pas trop ton problème mais j'ai l'impression que tu cherches à notifier le client, une fois que le serveur aura fini la requête que lui a envoyée le client. Si c'est le cas alors il te faut utiliser le pattern expliqué au 3ème point donc le MEP Duplex. Une recherche sur le net te permettra de savoir comment l'implémenter.
Merci
En fait j aimerais juste avec des évènements dans service auxquels le client puisse s abonne.
Par exemple : un evenement ProcessStarted dans le service
Et c'est au client de s'abonner à cet évènement si j'ai bien compris ?
Si oui, alors tu dois utiliser le MEP Duplex :
- tu crées ton contrat de service
- tu crées ton contrat de rappel (callback contract)
- tu implémentes côté serveur, ton contrat de service
- tu implémentes côté client ton contrat de rappel
- lors de l'exécution d'une des requêtes de ton client par ton service, tu fais appel, si nécessaire, à l'une des méthodes de ton contrat de rappel pour notifier le client.
Dans ton cas à toi, il s'agira d'une méthode ProcessStarted, non un évènement, qui sera dans l'implémentation de ton contrat de rappel.
Si tu veux toujours utiliser la notion d'évènement entre le client et le service WCF (ce qui n'est pas propre et n'est pas recommandé) alors suis le tuto que tu as fourni dans ton premier post.![]()
Sur MSDN il y a un petit exemple.![]()
Partager