在wcf中使用远程事件

时间:2009-04-09 10:10:12

标签: wcf events

我想将服务器应用程序中的事件传递给多个客户端。由于我使用wcf向客户端公开服务接口,因此我看了一下wcf异步回调机制,但它似乎不支持将一条消息分派给多个客户端。 MSMQ是实现向多个客户交付事件的更好方式。

感谢。

===编辑===

使用MSMQ我能够实现我的需要。

我的服务器应用程序创建一个队列,客户端从该队列中获取消息。客户端使用MessageQueue提供的peek方法。这使队列中的消息可用于其他客户端。

为了避免使用消息填充队列,服务器发送的消息的属性TimeToBeReceived设置为非常低的值,导致消息过期。

MSMQ不提供像JMS这样的主题真的很遗憾

===编辑2 ===

在WCF中实现发布者订阅者模式之后很简单。

这两篇文章(article1article2)描述了如何做到这一点。

1 个答案:

答案 0 :(得分:1)

您要做的是称为发布者订阅者多播。不,如果不编写大量的样板代码,就无法在WCF中完成。 MSMQ也不支持多播。

如果没有WCF,可以看看(所有免费和开源)NServiceBus,MassTransit或Rhino Service Bus。 如果您必须使用WCF,请查看Neuron(商业产品)。