Erlang 来自Mochiweb的流媒体结果

Erlang 来自Mochiweb的流媒体结果,erlang,mochiweb,Erlang,Mochiweb,我已经使用Erlang和Mochiweb编写了一个web服务。web服务返回大量结果,并需要一些时间来完成计算。 我希望在程序找到结果后立即返回结果,而不是在程序找到所有结果时返回结果 编辑: 我发现我可以使用分块请求来流式处理结果,但似乎找不到关闭连接的方法。有没有关于如何关闭mochiweb请求的想法?使用HTTP 1.1对未知大小的数据进行流式传输,您可以使用。在这种编码中,每个数据块都以其十六进制大小作为前缀。最后一个区块是长度为零的区块,区块大小编码为0,但没有任何数据 如果客户端不支

我已经使用Erlang和Mochiweb编写了一个web服务。web服务返回大量结果,并需要一些时间来完成计算。 我希望在程序找到结果后立即返回结果,而不是在程序找到所有结果时返回结果

编辑:


我发现我可以使用分块请求来流式处理结果,但似乎找不到关闭连接的方法。有没有关于如何关闭mochiweb请求的想法?

使用HTTP 1.1对未知大小的数据进行流式传输,您可以使用。在这种编码中,每个数据块都以其十六进制大小作为前缀。最后一个区块是长度为零的区块,区块大小编码为0,但没有任何数据

如果客户端不支持HTTP 1.1,服务器可以以二进制块的形式发送数据,并在流的末尾关闭连接

在这方面,所有工作如下:

  • HTTP响应应使用
    response=Request:
    函数启动。(顺便说一句,看看代码注释)
  • 然后可以使用
    响应:
    函数将块发送到客户端。要指示客户端,应发送长度为零的流块的结尾:
    响应:write_chunk()
  • 当通过MochiWeb处理当前请求时,MochiWeb决定应该关闭连接还是可以由用户重新使用连接

  • 所以我不是在聊天,这里的问题和答案永远作为参考。请花更多的时间来阐述你的问题。不过,你可以省去“我的问题很简单”和先发制人的“谢谢”(作为对好答案的评论,谢谢更合适)来节省时间。我认为,对于真正了解mochiweb工作原理的人来说,这个问题已经足够容易了,我接受了我提交的所有正确答案。我不征求意见,问题很简单,我需要一个简单的解决方案。我只是想用一些经验来帮助你,哪种形式的问题能得到更多的答案,哪种形式的问题不能得到更多的答案。避免像这样的杂乱是公认的提问方式,请参见: