2013-03-04 76 views
0

在客户端上运行代码的服务器上运行方法后,WCF双工执行回调。为什么wcf duplex需要?

如果我想从服务器在按钮的服务器上的推送客户端上执行的方法的话,我不认为WCF双工为宜。

为什么我不只是创建一个客户端,并在我的2个应用程序每端的服务器?

+1

是否有必要了解这一点?或者你可以总结得更好?这似乎很多代码可能是一个简单的问题... – 2013-03-04 19:39:43

+0

谢谢贾斯汀 - 我同意,但我确实想解释一切 - 人们不停地问我app.config,服务器代码和客户端代码,合同等所以它的所有在那里 – user1438082 2013-03-04 19:41:21

+0

是双工只为回调 - 我想从服务器运行客户端功能。不是一个回调。 – user1438082 2013-03-04 19:42:53

回答

3

我是在你前面的问题发表意见的人,所以我大概欠你这里的答案之一:O)

您已经发布了,而大量的代码,我还没有详细看着它。但是,总体而言,有使用一般的,而不是更多的是对等网络的方法,你必须在双方服务的wsDualHttpBinding和双工合同的理由如下:

双工方式是适当的地方你有一个永久运行的明确定义的服务器。这提供了交互的中枢。这个想法是客户在某种程度上比服务器更短暂。客户端可以启动和关闭或移动位置,服务器不需要提前知道它们。当客户端启动时,它被预先配置知道服务器在哪里,所以它可以在服务器上“注册”自己。

相比之下,服务器不需要预先配置知道在哪里的客户都是。它启动并可以独立于任何客户运行。它只接受来自所有拥有有效凭证的所有客户端的“注册”,并且可以在客户端下线后继续运行。另外,如果客户端移动,它只是在服务器的新位置重新注册自己。

因此,服务器在某种意义上是系统中更“重要”的部分。没有服务器的客户端不能参与通信,但服务器可以独立于任何客户端运行。

要与WCF双工服务做到这一点,你必须自己做一些额外的工作来实现发布/订阅行为。幸运的是,MSFT模式与实践团队提供了关于如何做到这一点

http://msdn.microsoft.com/en-us/library/ms752254.aspx

这是一个真正的对等网络的方式根本不同,其中没有明确定义中心(即服务器的一些指导),并且每个节点都可以来去而不会影响网络的整体功能。

+0

好 - 这里是问题,虽然上面我陈述“如果我想在服务器上按下服务器上的按钮执行客户端上的方法,然后我不认为WCF双工是适当的。” - 这根本不是双工的 - 我需要客户端上的服务器,我相信 – user1438082 2013-03-04 20:07:14

+0

请告诉我,我在这里完全错误,但没有人还没有说服我,否则 – user1438082 2013-03-04 20:07:50

+1

如果你有可能无法将服务器放在客户端上不控制客户端。你将不得不在他们的防火墙上打出一个洞来让服务器托管在他们的环境中。 – TylerOhlsen 2013-03-04 20:09:47

2

WCF双工当你有使用发布/订阅设置(也被称为Observer Pattern)。假设您有订阅某种通知的服务(例如新电子邮件)。通常情况下,您需要定期检查更新。使用WCF双工,当有更新时,发布者可以自动通知订阅者。

+0

是的 - 我明白,但我不认为这是我的 - 在这里我被告知它是但现在,我已经花了一天的时间编码它,我不同意http://stackoverflow.com/questions/15178434/wcf-client-and-server想法欢迎 – user1438082 2013-03-04 20:04:34

+1

这是很难说从一个肤浅的描述,但从小我可以理解,这可能不是你所需要的。请记住,这是关于端点之间应该发生的处理和通信方式,并不一定关于它们是否是P2P。 – Gigi 2013-03-04 20:09:39