0

ChicageBoss 控制器 API 有这个

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

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

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

有人可以在现实世界中展示一个用例吗?

4

1 回答 1

0

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

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

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