2013-11-23 53 views
0

我想通过使用IHttpAsyncHandler和刷新实现HTTP流。彗星-HTTP流与IHttpAsyncHandler - 块不工作

基本上,我每隔一段时间就会刷新一次响应 - 保存连接打开,直到出现一些超时 - 然后客户端应该启动另一个连接。

刷新确实有效并且客户端在发生刷新时收到刷新,但是响应正在聚合。例如,如果我把下面的刷新:

"TextOnFlush1" 
"TextOnFlush2" 
"TextOnFlush3" 

客户将获得以下刷新(在XMLHttpRequest.responseText):

"TextOnFlush1" 
"TextOnFlush1""TextOnFlush2" 
"TextOnFlush1""TextOnFlush2""TextOnFlush3" 

正如你所看到的最终客户将不得不处理带有非常大的消息(其将包含所有先前的刷新)。 有没有办法与冲洗工作,但清理每次冲洗的答复?

请注意,响应标题包含以下标题:“Transfer-Encoding:chunked”,这意味着我应该确实获取块中的内容,而是获得聚合消息。

+0

您每次都将整个响应再次刷新到流中。 – Fals

+0

每次我将其他文本写入响应时。第一次“TextOnFlush1”,第二个“TextOnFlush2”等,但客户端每次都收到汇总的消息,有什么方法可以解决这个问题?或者无法清除冲洗之间的响应? –

回答

1

因此,无法让浏览器清除每次刷新的响应 - 因此,限制此msg大小以及偶尔刷新大量数据上的流消息是一种很好的做法。