我需要从WCF服务返回流式响应。
客户端将在WCF REST URI上调用GET,服务器将在可用时发送XML响应。如果没有可用的响应,服务器将每隔几秒发送一个虚拟XML响应,以保持连接活动。
我知道理想情况下应该使用Signal R(WebSockets)来完成,但我想知道是否有办法在WCF中实现这一点(不使用Signal R)。 我不必返回大数据,我想发送间歇性的小型XML数据。
让我知道是否有人通过WCF REST实现了类似的功能?
答案 0 :(得分:1)
我不确定你使用WebAPI有多灵活,抱歉,如果它不是你想要的,但是我遇到了下面的代码,它基本上是一个api控制器,可以连续地将数据作为HTTP响应推送回客户端..
客户端基本上是HttpClient
,它连接到发出Uri
的{{1}}地址。邮件随GET HttpRequestMessage
一起发送,流将作为SendAsync
...
答案 1 :(得分:0)
在服务器和客户端之间创建持久连接的最佳方法是使用WebSockets。
WCF可以通过NetHttpBinding使用WebSockets。
配置完成后,您可以通过以下方式强制通信始终通过WebSockets:
transportUsage=Always
由于您有持久连接,因此在发送数据时需要使用callbacks来管理应用程序流。
还有detailed article here描述了在.NET中创建WebSocket连接的几种不同方法(没有SignalR)。