WCF REST 流式 GET 响应
WCF REST Streamed GET response
我需要 return 来自 WCF 服务的流式响应。
客户端将在 WCF REST URI 上调用 GET,服务器将在可用时发送 XML 响应。如果没有响应可用,服务器将每隔几秒发送一个虚拟 XML 响应以保持连接。
我知道最好使用 Signal R (WebSockets) 来完成此操作,但我想知道是否可以在 WCF 中实现此操作(不使用 Signal R)。
我不需要 return 大数据,我想发送间歇性的小 XML 数据。
让我知道是否有人使用 WCF REST 实现了类似的东西?
在服务器和客户端之间创建持久连接的最佳方法是使用 WebSockets。
WCF 可以通过 NetHttpBinding.
使用 WebSockets
配置后,您可以通过以下方式强制始终通过 WebSockets 进行通信:
transportUsage=Always
由于您拥有持久连接,因此您需要使用 callbacks 来管理跨数据发送时的应用程序流。
还有一个 detailed article here 描述了在 .NET 中创建 WebSocket 连接的几种不同方法(没有 SignalR)。
我不确定您使用 WebAPI 有多灵活,如果不是您想要的,抱歉,但我看到下面的这段代码,它基本上是一个 api 控制器,它将数据推送回客户端作为 HTTP 响应的连续基础..
客户端基本上是一个 HttpClient
,它连接到一个 Uri
地址并发出一个 GET HttpRequestMessage
。消息使用 SendAsync
发送,流接收为 response.Content.ReadAsStreamAsync()
...
我需要 return 来自 WCF 服务的流式响应。
客户端将在 WCF REST URI 上调用 GET,服务器将在可用时发送 XML 响应。如果没有响应可用,服务器将每隔几秒发送一个虚拟 XML 响应以保持连接。
我知道最好使用 Signal R (WebSockets) 来完成此操作,但我想知道是否可以在 WCF 中实现此操作(不使用 Signal R)。 我不需要 return 大数据,我想发送间歇性的小 XML 数据。
让我知道是否有人使用 WCF REST 实现了类似的东西?
在服务器和客户端之间创建持久连接的最佳方法是使用 WebSockets。
WCF 可以通过 NetHttpBinding.
使用 WebSockets配置后,您可以通过以下方式强制始终通过 WebSockets 进行通信:
transportUsage=Always
由于您拥有持久连接,因此您需要使用 callbacks 来管理跨数据发送时的应用程序流。
还有一个 detailed article here 描述了在 .NET 中创建 WebSocket 连接的几种不同方法(没有 SignalR)。
我不确定您使用 WebAPI 有多灵活,如果不是您想要的,抱歉,但我看到下面的这段代码,它基本上是一个 api 控制器,它将数据推送回客户端作为 HTTP 响应的连续基础..
客户端基本上是一个 HttpClient
,它连接到一个 Uri
地址并发出一个 GET HttpRequestMessage
。消息使用 SendAsync
发送,流接收为 response.Content.ReadAsStreamAsync()
...