我有兴趣使用具有类似于MSMQ功能的免费库,在win表单应用程序中的3个应用程序域之间发送/接收消息。 我只需要私有队列功能(没有公共队列或AD支持) 请提供链接和一些优点/缺点。如果您认为需要更多积分以获得更精细的细节,我很乐意打开子问题。
注意:遗憾的是我有一些用户没有Windows XP专业版(MSMQ不可用) 我看到了Apache ActiveMQ和Rabbit MQ,但对于我需要做的事情来说似乎有些过分。 http://activemq.apache.org/ http://www.rabbitmq.com/ 可以使用受命名互斥锁保护的单例队列来实现此功能,但如果有人已经完成,我不想花时间。
答案 0 :(得分:2)
有Rhino Queues。作者被认为是一个非常好的开发者。
答案 1 :(得分:2)
NServiceBus使用shared memory transport怎么样?创作者Udi Dahan是基于消息的架构空间中备受尊重的个人。
答案 2 :(得分:0)
如果它们都在同一个应用程序中,那么共享一个同步队列就是你想要的,看一下MSDN中的Queue.Synchronized方法,为你提供一个线程安全的队列。
答案 3 :(得分:0)
在某些时候,必须有一些客户端特定的代码来接受消息。如果用户需要在他们的机器上接受消息,这听起来像智能客户端情况。在Windows世界中,有一个智能客户端可以进行消息传递,并允许用户以断开连接的方式处理数据。
我无法想象任何一个允许在不同操作系统上发送消息的库。即使使用单例,也必须有一些跨平台的方式来发送/接收消息。看起来客户端总是必须是特定于操作系统的。
也许可以在非Windows端尝试Mono。您可以使用一个工具来查看第三方库是否具有无法在Mono中运行的依赖项。它随Visual Studio的Mono工具一起发布。它被称为Mono迁移分析仪(MoMA)。
答案 4 :(得分:0)
另见本系统:
http://www.codeproject.com/Articles/193611/DotNetMQ-A-Complete-Message-Queue-System-for-NET
DotNetMQ是一个开源的Message Broker,它有几个功能:
持久性或非持久性消息传递。 即使在系统崩溃时也能保证传递持久性消息。 在自定义机器图中自动和手动路由消息。 支持多个数据库(MS SQL Server,MySQL,SQLite和基于内存的存储)。 支持不存储,直接发送样式消息。 支持请求/回复样式消息传递。 易于使用的客户端库与DotNetMQ Message Broker进行通信。 内置框架,可在消息队列上轻松构建RMI服务。 支持向ASP.NET Web服务传递消息。 基于GUI的管理和监控工具。 易于安装,管理和使用。
答案 5 :(得分:-1)
您可能希望查看Retlang http://code.google.com/p/retlang/