是否可以通过http将数据从客户端流式传输到服务器

本文关键字:传输 服务器 客户端 可以通过 http 数据 是否 | 更新日期: 2023-09-27 18:32:03

我想将数据从客户端(桌面或移动设备)流式传输到托管服务器。 它不是大量的数据,每 1/10 秒 1 个字节 - 但数据需要立即流式传输(无缓冲),并且连接需要长时间保持活动状态(例如最多 10 分钟)。

因为服务器是托管的,所以我无法使用套接字 - 只有 http。

我知道在服务器端,如果我连接到客户端,我可以使用持久连接并写入响应流来执行此操作。

但是有没有办法反向执行此操作,其中客户端与服务器具有持久连接并正在写入请求流?

澄清:我不必将这种客户端>服务器通信作为持久 http 连接来完成,我只是想知道这是否可能,这样我就可以与我计划的服务器>客户端持久 http 连接对称。

从我听到的情况来看,听起来我应该能够做单独的 http 帖子并实现相同或相似的延迟。

是否可以通过http将数据从客户端流式传输到服务器

我会继续提供我自己的问题的答案,这似乎是:

从客户端>服务器进行持久的http连接在技术上是可能的,但还没有人实现它,因为使用创建单个http请求的常规方法似乎足够快,可以满足每个人的目的。

这就是我最终所做的,简单地使用 WebRequest.Create 和 HttpWebRequest 类,并相信框架正在处理 KeepAlive。 在我的原型中,这似乎足够快,尽管实际性能还有待观察。

也许WebSocket会很有用。它允许您通过 HTTP 创建"套接字",因此您可以使用它通过 HTTP 将数据从客户端发送到服务器。

我不确定这是否是一个很好的用例,但 SignalR 可能适合您。

AFAIK,当 WCF 托管在 IIS 中时,流式处理不起作用。

我发现这篇 CodeProject 文章说它在 WCF 4.5 中得到了修复。

你能让客户端每 1/10 秒拨打一次新电话吗?如果您使用的是 HTTP 1.1,则 TCP 连接应保持打开状态。