WCF REST流式传输GET响应

时间:2015-02-11 14:08:35

标签: c# xml wcf rest

我需要从WCF服务返回流式响应。

客户端将在WCF REST URI上调用GET,服务器将在可用时发送XML响应。如果没有可用的响应,服务器将每隔几秒发送一个虚拟XML响应,以保持连接活动。

我知道理想情况下应该使用Signal R(WebSockets)来完成,但我想知道是否有办法在WCF中实现这一点(不使用Signal R)。 我不必返回大数据,我想发送间歇性的小型XML数据。

让我知道是否有人通过WCF REST实现了类似的功能?

2 个答案:

答案 0 :(得分:1)

我不确定你使用WebAPI有多灵活,抱歉,如果它不是你想要的,但是我遇到了下面的代码,它基本上是一个api控制器,可以连续地将数据作为HTTP响应推送回客户端..

客户端基本上是HttpClient,它连接到发出Uri的{​​{1}}地址。邮件随GET HttpRequestMessage一起发送,流将作为SendAsync ...

收到

以下是链接:http://aspnet.codeplex.com/SourceControl/changeset/view/bb167f0b0013#Samples/Net4/CS/WebApi/PushContentControllerSample/PushContentController/Controllers/PushContentController.cs

答案 1 :(得分:0)

在服务器和客户端之间创建持久连接的最佳方法是使用WebSockets。

WCF可以通过NetHttpBinding使用WebSockets。

配置完成后,您可以通过以下方式强制通信始终通过WebSockets:

transportUsage=Always

由于您有持久连接,因此在发送数据时需要使用callbacks来管理应用程序流。

还有detailed article here描述了在.NET中创建WebSocket连接的几种不同方法(没有SignalR)。

Create a WCF Service that Communicates over WebSockets