HttpListener为您提供响应流,但调用flush意味着什么(从源代码来看,它很明显,因为它实际上什么都不做)。在HTTP API中挖掘表明这是HttpListener本身的限制。
任何人都知道如何刷新HttpListener的响应流(可能有反射或额外的P / Invokes)?
更新:如果您没有刷新选项或能够定义缓冲区大小,则无法对任何内容进行http流式处理。
答案 0 :(得分:2)
当Transfer-Encoding设置为Chuncked时,Flush仅适用于大多数System.Net命名空间,否则返回整个请求而Flush实际上什么都不做。至少这是我在使用HttpWebResponse时所经历的。
答案 1 :(得分:0)
我还没有尝试过这个,但是如何为流媒体响应编写单独的TCP服务器呢?然后将请求从HttpListener转发到“内部”tcp服务器。使用此重定向,您可以根据需要重新传输数据。
至于冲洗它,我们只看到这样做就是模拟处理,而不是实际处理。如果您可以入侵HttpResponseStream对象,告诉它处置,取消设置m_Closed标志等,您可能能够刷新流数据。