需要一个用例示例来说明ChicagoBoss中的流响应

时间:2016-02-14 14:37:17

标签: chicagoboss

ChicageBoss控制器API有这个

  

{stream,Generator :: function(),Acc0}

     

使用HTTP分块编码将响应流式传输到客户端。对于每一个   块,Generator函数传递一个累加器(初始为Acc0)   并应返回{output,Data,Acc1}或done。

我想知道这是什么用例?还有其他像Json,输出。这stream什么时候有用?

有人可以在现实世界中呈现用例吗?

1 个答案:

答案 0 :(得分:0)

提供大型文件供下载可能是最直接的用例。

您可能会争辩说还有其他方式来提供文件以便用户可以下载它们,但这些方法可能还有其他缺点:

  • 通过流式传输文件,您无需在开始向客户端发送响应之前将整个文件读入内存。对于小文件,您只需阅读文件的内容,并将其作为{output, BinaryContent, CustomHeader}返回。但是,如果你想提供像磁盘映像这样的大型文件,这可能会变得棘手。
  • 人们经常建议将可下载文件作为静态文件提供(例如here)。但是,这些下载会绕过所有控制器,如果您需要下载计数器或访问限制等内容,这可能是一个问题。缓存也可能是一个问题。