2011-03-09 44 views
1

我可以从Web客户端收听WCF事件吗?这可能吗?我不是在讨论回叫,我希望WCF服务能够提升和事件,并且Web客户端能够倾听。在C#中有这样的一个很好的例子吗?我可以从Web客户端收听WCF事件吗?

+0

那么,异步调用WCF方法与双工消息交换模式有什么区别?我已经读过WCF服务可以发布客户可以订阅的事件。但是,我不确定Web客户端是否可以这样做。 – Ruwan 2011-03-09 20:36:15

+1

http://msdn.microsoft.com/en-us/magazine/cc163537.aspx#S5 – Ruwan 2011-03-09 20:46:25

+1

罗文,我有这个确切的问题。你有没有想过如何使用WCF做到这一点。如果是这样,你认为你可以回答你自己的问题? – 2011-05-23 01:42:17

回答

0

WCF中没有事件。如果您想要模仿事件,您仍然需要调用某些在所有客户端上公开的操作=您必须调用WCF服务或在客户端上公开回调。

你是什么意思的网络客户端?你的意思是在Web浏览器中运行JavaScript代码吗?在这种情况下,不可以用WCF来实现。您只能使用来自borowser的AJAX呼叫,并不断轮询服务以查找可能的“事件”。

如果你的意思是ASP.NET应用程序,那么理论上答案是肯定的,但实际上它会很难。原因是在ASP.NET中,您只处理某个处理程序的当前HTTP请求 - 例如Page。处理程序的生命周期仅用于处理单个请求。由于使用双工服务没有多大意义,因为通过双工服务接收回传,您的客户端代理必须存活。如果您在Page中打开代理服务器,它将在提供请求后终止。如果您在单独的线程中打开代理,则必须以某种方式将收集的回调与实际客户端相关联,但客户端仍需轮询Web服务器以通知回调。在ASP.NET应用程序上公开服务时也会出现类似的情况。

异步和双工呼叫之间的区别很大。在异步模式下,单个请求总是具有单一响应。 Resonse不会在没有请求的情况下发送。在双工模式中,您可以发出单一请求并从服务器接收数千次回调。

相关问题