我有一个WCF服务,它将某些请求路由到中央处理应用程序。 WCF服务使用基本的HTTP / S绑定;这是为了兼容各种客户端技术(Java,Python等......)
我的任务是向服务添加通知,以便客户端应用程序(服务本身)可以使用URI作为参数调用其中一个WCF方法,以便在项目状态发生更改时通知发送原始请求。基本上,他们调用服务并为其提供除其他数据之外的URI字符串。如果/当数据状态发生变化(可能发生在几天或从未发生过)时,他们应该在他们提供的URI上获得响应DTO,告知变更。
我遇到的问题是实现正确的发布 - 订阅模式显然是not possible in WCF using the basic bindings。我可以手动创建一个soap包,并调用传递的URI,但我不知道如何通过服务本身传递返回服务应该实现的回调方法契约(所以他们可以从WSDL中获取它。)
我可以手动为需要进行调用的客户端制定一个需求规范,但我更愿意以消费者服务可以通过编程方式获得的方式使其可用,因此它与WCF服务本身始终是1:1。 / p>
答案 0 :(得分:1)
您可以使用双工绑定,但对于客户端,除了.Net之外,它不会开箱即用。
对于您的UseCase,我会考虑检查SignalR的使用情况。它可以托管在您的wcf服务中,并且可以通知您的客户。
另请参阅:SignalR as WCF web socket service。
另外,我还会检查WebSocket使用的可能性
见
http://www.codeproject.com/Articles/338789/What-s-new-in-WCF-4-5-WebSocket-support-Part-1-of http://www.codeproject.com/Articles/341413/What-s-new-in-WCF-4-5-WebSocket-support-Part-2-of