首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无代理消息传递C#

无代理消息传递C#
EN

Stack Overflow用户
提问于 2012-11-08 23:45:25
回答 6查看 1.4K关注 0票数 3

我在同一公司网络上有多个WPF客户端。我希望这些客户端能够彼此共享消息。我不想运行单独的服务器进程,因此无代理解决方案似乎是最好的。我考虑过使用PNRP,但这似乎需要在每个客户端上运行一个PNRP服务,我不确定我是否能保证所有客户端都将或可能运行此服务。我也看过ZeroMq,它看起来很理想,因为它的简单性和轻量级,但是我需要知道TCP/IP风格的通信的端点,每个客户端都不会知道其他的,而是他们需要某种方式来发现彼此。因此,从本质上讲,我想要一种多播风格的通信,但不必使用多播,因为这将要求我在公司网络中设置一系列地址,并涉及基础设施等。

所以我想问题是,有没有我认为不符合条件的选项?

提前感谢您的帮助。

EN

回答 6

Stack Overflow用户

发布于 2012-11-10 12:59:27

在访问数百个客户端之前,ZeroMQ发布-订阅模式非常简单、快速;然后,您可以切换到真正的多播协议(PGM),而无需修改应用程序。

票数 4
EN

Stack Overflow用户

发布于 2012-11-08 23:56:13

也许你应该去看看NServiceBus。它是一个真正的服务总线,所以中间没有代理机器。它在MSMQ上运行,因此你的windows服务器将开箱即用地支持它。它还支持事务性消息传递。它还支持一个发布/订阅模型,可以满足您的组播需求。

票数 3
EN

Stack Overflow用户

发布于 2012-11-09 04:00:59

如果您不介意使用商业产品:OMG's Data Distribution Service是一个具有多个实现的标准,可以实现您想要的功能。At least one of them支持C#,并且不需要在您的机器上安装任何东西--只需要安装库。披露:我在这家公司工作。

,所以从本质上讲,我想要一种多播风格的通信,但不必使用多播,因为这将需要我在公司网络内设置一系列地址,并涉及基础设施等。

默认情况下,DDS使用基于多播的UDP/IP进行发现和通信,但可以通过编程或通过配置文件指示仅使用基于单播的UDP或TCP。这不会影响应用程序逻辑,因此保留了概念性多播性质。但是,如果您没有IP多播可用,那么您将失去一些开箱即用的自动发现功能。在这种情况下,您需要预先知道可能参与通信的所有节点的IP地址或主机名。从那里,中间件将能够发现这些人中的谁实际存在,并相应地调整其通信。

我认为后者对于您选择的任何解决方案都是正确的。要实现全自动发现,您需要在系统中运行多播/广播或一些已知的发现服务器。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13292420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档