WCF客户端回调

时间:2014-12-18 14:29:42

标签: wcf

我有两个Winform应用程序(每个都运行在不同的计算机上),它们通过WCF进行通信,基本上遵循客户端/服务器模型。客户端将在通道上发送JSON数据包,WCF服务处理传入的请求。 WCF服务具有自定义事件处理程序,当服务接收到此新传入数据包并且服务器应用程序订阅这些事件以便可以通知时触发该事件处理程序。当事件处理程序触发时,它将解析的JSON数据包传递给服务器应用程序,然后服务器应用程序运行在一个单独的线程(使用后台工作程序)中启动的长进程,以便不锁定服务器应用程序UI。所以...我已经完成了所有这些工作。

然而,现在我需要做的是弄清楚当backgroundworker线程完成其进程时让他们知道所有内容都已完成时如何向客户端发送回调消息。服务器知道发送消息的客户端的IP地址,因为我将该属性添加为最初发送的JSON数据包的一部分。但是,在这种情况下,我不知道如何让服务器将信息发送回客户端。我已经完成了教程,我知道我可以简单地在客户端用来将数据发送到主机应用程序的函数上添加一个返回变量......但在这种情况下,我不认为这将工作,因为我必须等待一个单独的线程完成发送返回变量之前。任何人都可以提出建议吗?

1 个答案:

答案 0 :(得分:0)

您正在寻找WCF Duplex Services,它是双向的(客户可以发送和订阅该服务)。

在MSDN上进行了一次演练:How To: Create a Duplex Contract