我想将服务器应用程序中的事件传递给多个客户端。由于我使用wcf向客户端公开服务接口,因此我看了一下wcf异步回调机制,但它似乎不支持将一条消息分派给多个客户端。 MSMQ是实现向多个客户交付事件的更好方式。
感谢。
===编辑===
使用MSMQ我能够实现我的需要。
我的服务器应用程序创建一个队列,客户端从该队列中获取消息。客户端使用MessageQueue提供的peek方法。这使队列中的消息可用于其他客户端。
为了避免使用消息填充队列,服务器发送的消息的属性TimeToBeReceived设置为非常低的值,导致消息过期。
MSMQ不提供像JMS这样的主题真的很遗憾
===编辑2 ===
在WCF中实现发布者订阅者模式之后很简单。
答案 0 :(得分:1)
您要做的是称为发布者订阅者多播。不,如果不编写大量的样板代码,就无法在WCF中完成。 MSMQ也不支持多播。
如果没有WCF,可以看看(所有免费和开源)NServiceBus,MassTransit或Rhino Service Bus。 如果您必须使用WCF,请查看Neuron(商业产品)。