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

时间:2012-04-24 15:09:36

标签: c# asp.net http persistent-connection

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

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

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

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

澄清: 我不必将此客户端 - >服务器通信作为持久性http连接完成,我只是想知道是否可能,只是因为我可以与我计划的服务器 - >客户端持久性http连接具有对称性。

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

4 个答案:

答案 0 :(得分:1)

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

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

这就是我最终做的事情,只需使用WebRequest.Create和HttpWebRequest类,并相信框架正在处理KeepAlive。在我看起来足够快的原型中,虽然现实世界的表现还有待观察。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

我发现this CodeProject article表示它已在WCF 4.5中修复。

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

答案 3 :(得分:0)

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