如何刷新HttpListener响应流?

HttpListener为您提供响应流,但调用flush意味着什么(来自消息来源很清楚,因为它实际上什么都不做)。 挖掘HTTP API内部显示这是HttpListener本身的限制。

任何人都知道如何刷新HttpListener的响应流(可能是reflection或额外的P / Invokes)?

更新:如果您没有刷新选项或定义缓冲区大小的能力,则无法对任何内容进行http流。

当Transfer-Encoding设置为Chuncked时,Flush仅适用于大多数System.Net命名空间,否则返回整个请求,Flush实际上什么都不做。 至少这是我在使用HttpWebResponse时遇到的情况。

我还没有尝试过这个,但如何为流式响应编写单独的TCP服务器呢? 然后将请求从HttpListener转发到“内部”tcp服务器。 使用此重定向,您可以根据需要流式传输数据。

至于冲洗它,我们只看到这样做就是模拟处理,而不是实际处理。 如果您可以入侵HttpResponseStream对象,告诉它处置,取消设置m_Closed标志等,您可能能够刷新流数据。