我已经使用Erlang和Mochiweb编写了一个web服务。web服务返回大量结果,并花费一些时间来完成计算。我希望在程序找到结果时立即返回结果,而不是在找到所有结果时返回它们。
编辑:
我发现我可以使用分块请求来流式传输结果,但似乎找不到关闭连接的方法。那么关于如何关闭一个mochiweb请求有什么想法吗?
发布于 2011-04-15 02:44:00
要使用HTTP1.1流式传输未知大小的数据,您可以使用HTPP chunked transfer encoding。在这种编码中,每个数据块都以其十六进制大小为前缀。最后一个块是长度为零的块,块大小编码为0,但没有任何数据。
如果客户端不支持HTTP1.1,服务器可以将数据作为二进制块发送,并在流的末尾关闭连接。
在MochiWeb中,它的工作原理如下:
应使用Response = Request:respond({Code, ResponseHeaders, chunked})函数启动
Response:write_chunk(Data)函数可以将comments);Response:write_chunk(<<>>)。当对当前请求的处理结束时,HTTP persistent connection.
https://stackoverflow.com/questions/5645257
复制相似问题