问候读者! 所以我正在尝试开发一个客户端服务器系统..由于我之前没有设计过客户端服务器系统,我想我会发一个问题,看看专家们在这里说些什么。
要求: .NET 3.5 WCF 至少2台电脑,Master和Slave。
用例是一个测试环境,其中slave从主服务器的请求运行测试。
问题: 我希望从属设备找到并连接到主设备,然后主设备接受控制,并且是启动测试运行的设备。奴隶还会制作进度报告:新的测试数据,意外事件等。
我感到困惑的部分是,如果奴隶发起与主人的联系,这不是让他成为主人吗?
这是否意味着我需要slave和master上的servicehosts以便它们可以启动活动?
答案 0 :(得分:4)
答案 1 :(得分:0)
不要混淆客户端/服务器和主/从。主控制操作,但服务器侦听连接。
如果您的客户端(从属服务器)正在启动所有联系,那么主服务器上您需要的只是监听这些请求(Web服务等)和处理系统。
答案 2 :(得分:0)
我不知道为什么你的问题得到了投票,对我来说似乎没问题:)
如果我是你,我可能倾向于使用netMsmqBinding(我喜欢队列!)。主设备可以通过将消息放在MSMQ队列上来向从设备发送请求,从设备可以通过MSMQ将状态报告发送回主设备。这样两个进程可以独立工作,你不必担心跟上另一个进程(除非一个人完全陷入困境。)
为此,您需要在两个进程中都使用ServiceHost。主服务器需要托管netMsmq服务,也需要托管服务器。每个人还需要一个客户端绑定来发送消息。
如果您想要更多并行处理,这还允许您扩展从属(或主控)的数量。 (所有从站都可以将消息从同一队列中拉出来。)
只是一个想法。
答案 3 :(得分:0)
查看DuplexContracts,它可以让您了解可以呼叫客户的方法。 WCF中还有事件处理,但它需要比普通.NET事件更多的工作。