2009-04-09 1 views
3

Je souhaite envoyer des événements d'une application serveur à plusieurs clients. Puisque j'utilise wcf pour exposer une interface de service aux clients, j'ai jeté un coup d'oeil dans le mécanisme de rappel asynchrone de wcf, mais il semble ne pas prendre en charge l'envoi d'un message à plusieurs clients. MSMQ est un meilleur moyen de mettre en œuvre la livraison d'événements à plusieurs clients.Utilisation d'événements distants dans wcf

Merci.

=== === EDIT

En utilisant MSMQ j'ai pu réaliser ce que j'ai besoin.

Mon application serveur crée une file d'attente à partir de laquelle les clients récupèrent les messages. Un client utilise la méthode peek fournie par MessageQueue. Cela garde les messages dans la file d'attente disponibles pour d'autres clients.

Pour éviter de remplir la file d'attente avec des messages, le serveur envoie des messages avec la propriété TimeToBeReceived définie avec une valeur vraiment faible, provoquant l'expiration du message.

Il est vraiment dommage que MSMQ ne fournit pas des sujets tels que JMS

=== === EDIT 2

Après tout mettre en œuvre le modèle d'abonné éditeur dans WCF est simple.

Ces deux articles (article1, article2) décrivent comment cela peut être fait.

Répondre

1

Ce que vous essayez de faire est appelé multidiffusion abonné éditeur. Non, vous ne pouvez pas le faire dans WCF sans écrire beaucoup de code standard. MSMQ ne prend pas en charge la multidiffusion non plus. Jetez un coup d'œil à (tous libres et open source) NServiceBus, MassTransit ou Rhino Service Bus si vous pouvez vivre sans WCF. Si vous devez utiliser WCF, jetez un oeil à Neuron (produit commercial).