我有一个 Linux/c 客户端应用程序,它通过 HTTP/SOAP (BasicHTTPBinding) 连接到 WCF 网络服务。我正在使用 gSOAP。我可以使用回调实现对网络服务的调用吗?我想异步获取数据作为回调。
更新:我已经更新了问题标题。
最佳答案
WCF 确实支持 Duplex 服务,或者那些能够回调请求客户端的服务。双工服务可能非常复杂,因为它们不仅是有状态的,而且还对客户施加了契约实现要求。
双工服务需要使用 WSDuplexHttpBinding。您将需要使用 OperationContext 来获取对回调 channel 的引用。您的客户端必须在某个类中实现回调契约,并向客户端代理提供包含回调类实例的 InstanceContext。必须支持双向通信,如果客户端在其自己的防火墙后面或通过 Internet,这可能是一个很难解决的问题。编写双工服务时要小心......它们往往比它们的值(value)更麻烦......所以确保你真的需要它。 ;-)
以下页面可能会有帮助:
关于我可以实现从基于 WCF 的 HTTP 服务到 gSOAP c/Linux 客户端的回调吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2298270/