.NET中的RabbitMQ订阅者通知

时间:2010-10-14 18:31:08

标签: rabbitmq

我们现在正在使用MSMQ和WCF激活功能,它使我们不会拉队列来读取消息。它像推送消息到应用程序。

我们正在考虑从MSMQ移植到RabbitMQ,从消息队列中完成我们需要的工作。

对于从订阅队列接收消息通知的RabbitMQ .net客户端支持,我无能为力?

带有.net的RabbitMQ中有什么东西可以像MSMQ那样向用户发送推送通知吗?

或者我们需要不断检查消息的服务运行?

4 个答案:

答案 0 :(得分:12)

在AMQP(和RabbitMQ)中,有两种方法可以检索邮件:basic.getbasic.consume

Basic.get用于轮询服务器以获取消息。如果存在,则将其返回给客户端。如果没有,则返回get-empty(.NET方法返回null)。

Basic.consume设置队列的使用者。经纪人在消费者到达时将消息推送给消费者。您可以导出DefaultBasicConsumer,它可以为您提供自己的自定义消费者,也可以使用Subscription Message Pattern,这会为您提供阻止的nextDelivery()。

有关详细信息,请查看上面链接的API指南和.NET Client Userguide。另外,一个讨论RabbitMQ相关问题的好地方是rabbitmq-discuss邮件列表。

答案 1 :(得分:5)

我认为你是在追赶像EventingBasicConsumer这样的东西。另请参阅this question/answer

答案 2 :(得分:1)

这是WAS(Windows激活服务)提供的功能。现在WAS有net.pipe,net.msmq和net.tcp(以及它的端口共享服务)的监听器适配器。我想你需要一个特定的AMQP监听器适配器。

这可能有助于http://msdn.microsoft.com/en-us/library/ms789006.aspx

答案 3 :(得分:1)

Here是Simon Dixon使用RabbitMQ发布/订阅服务的一个很好的例子。发布者(制作者)是.NET应用程序,订阅者(消费者)是Android应用程序。

相关问题