我有一个Linux / c客户端应用程序,通过HTTP / SOAP(BasicHTTPBinding)连接到WCF Web服务。我正在使用gSOAP。我可以使用回调实现对Web服务的调用吗?我想以回调的方式异步获取数据。
更新:我更新了问题标题。
答案 0 :(得分:2)
WCF支持双工服务,或者能够回调请求客户端的服务。双工服务可能非常复杂,因为它们不仅具有状态,而且还会对客户施加合同实施要求。
双工服务需要使用WSDuplexHttpBinding。您需要使用OperationContext来获取对回调通道的引用。您的客户端必须在某个类中实现回调协定,并提供一个InstanceContext,其中包含客户端代理的回调类实例。必须支持双向通信,如果客户端位于自己的防火墙后面或互联网上,这可能是一个复杂的问题需要解决。在编写双工服务时要小心......它们通常比它们的价值更麻烦...所以确保你确实需要它。 ; - )
以下页面可能会有所帮助:
答案 1 :(得分:1)
basicHttpBinding不支持回调。另一种方法可能是使用另一种方法,客户端可以轮询该响应。
答案 2 :(得分:1)
我面临同样的问题,我正在尝试的方法是拥有一对gsoap服务器/客户端。基本上每个进程都会在端口上侦听soap调用,并将其客户端调用到另一个服务器。这样我就避免了轮询或其他复杂的方法。对于任何业务逻辑,代码必须显然是线程安全的,但客户端/服务器组合对是我迄今为止想到的最简单的解决方案。
显然,需要控制所提到的服务器和所提到的客户端的解决方案的双方。