我们正在开发一个与Windows服务通信的Web应用程序(两者都将在.Net中开发)。这些调用可以是简单的CRUD操作或订阅操作。你可以请不同的替代品来设置这两个应用程序之间的通信。我可以想到以下选项。请建议我最好的。
a)我们可以公开WCF服务端点。对于订阅,我们可以使用双工WCF。
b)我们可以使用某种代理队列(如RabbitMQ)。 RabbitMQ为我们提供了添加回调/订阅的工具。
c)使用套接字编程设置两者之间的通信。
如果您能告诉我哪个选项应该优先于其他选项,那将会很棒。
提前致谢
答案 0 :(得分:2)
(a)和(b)选项似乎更好。实际上你可以在WCF中使用RabbitMQ绑定。似乎你的通信数据是中央数据库。 RabbitMQ使用AMQP协议,而WCF的Duplex绑定使用MSMQ。 RabbitMQ来自第三方但稳定。 WCF具有良好的稳定性历史,具有WCF LOB适配器的一些新概念。 两者都是可扩展和高效的。它们都支持发布者/订阅者模式。
但是如果你是第一次写WCF双工,那么它在开发中会非常复杂。 deployement,因为WCF更多的是配置。 我想建议你建立在winsock和相关通信渠道之上的SignalR.SignalR可以部署在ASP.Net& MVC网站。 目前我正在使用SignalR建立一个庞大的通信系统。
看看ZeroMQ。它比RabbitMQ具有更好的性能。使用NetMQ 100%C#ZeroMQ端口。
希望有所帮助