我可以从网络客户端收听WCF事件吗?这可能吗?我不是在谈论回调,我希望WCF服务提升和事件以及Web客户端能够收听。在C#中有一个很好的例子吗?
答案 0 :(得分:0)
WCF中没有事件。如果你想要模仿事件,你仍然需要在所有客户端上调用某些操作=你必须在客户端上调用WCF服务或回调。
Web客户端是什么意思?你的意思是在网络浏览器中运行javascript代码?在这种情况下,你无法通过WCF实现这一目标。您只能使用来自borowser的AJAX调用,并不断轮询服务以查找可能的“事件”。
如果你的意思是ASP.NET应用程序,那么答案在理论上是肯定的,实际上它会很难。原因是在ASP.NET中,您只处理某个处理程序的当前HTTP请求 - 例如Page。处理程序的生命周期仅用于提供单个请求。由于使用双工服务没有多大意义,因为通过双工服务接收回调,您的客户端代理必须存在。如果您在页面中打开代理,它将在提供请求后死亡。如果您在单独的线程中打开代理,您必须以某种方式将回调到实际客户端,但客户端仍然必须轮询Web服务器以获得有关回调的通知。类似的情况将是在ASP.NET应用程序上公开服务。
异步和双工呼叫之间的差异很大。在异步模式中,单个请求始终具有单个响应。没有请求就不会发送Resonse。在双工模式中,您可以发出单个请求,并从服务器接收数千个回调。