嵌入式系统:套接字与MSMQ

我正在为嵌入式设备开发一些应用程序;它们应与使用C#2.0嵌入的Windows CE 5.0和XP兼容。 应用程序应交换通常代表事件的小消息。 我使用TCP套接字和作为调度程序的单独服务器(使用pub / sub模式)实现了第一个原型。它有效,但我想知道使用MSMQ是否是一个更好的解决方案。在几种情况下,保留消息可以帮助我,但通常所有事件都应该由目标应用程序立即使用。 我想知道两种解决方案的优缺点,以及一些帮助我做出决定的指导方针。 谢谢     
已邀请:
好吧,消息队列非常适合在事务队列中保证传递。这有助于使您的系统适应崩溃和意外重启。但是,这通常只有在您可以从这样的事故中重新启动应用程序并且能够在再次开始接收消息之前恢复状态时才能正常运行。 这是一个非平凡的要求。如果您无法满足它,任何有状态的消息往往会再次关闭机器。消息中几乎总是存在明确的状态,即使它们的内容不是有状态的,只需按接收顺序并改变程序状态即可。这是中间件的诅咒,软件假定网络是一个可以抽象出来的实现细节,但在实践中效果不佳。 我认为SO的这个答案特别好地表达了这个问题。     
我倾向于抽象出一个接口并根据接口实现它们并将决策作为配置项。让用户根据他们可能不断变化的需求选择协议。     

要回复问题请先登录注册