2011-05-24 87 views
2

Rails 3.1支持HTTP流式传输,但只支持兼容的Web服务器。该博客文章宣布3.1发布候选提到麒麟: http://weblog.rubyonrails.org/2011/5/22/rails-3-1-release-candidateRails 3.1中的HTTP流式传输是否适用于Thin?

和API文档也不在话下独角兽,并有乘客存根: https://github.com/rails/rails/blob/master/actionpack/lib/action_controller/metal/streaming.rb

有谁知道是否支持薄,如果是这样,在哪里可以找到配置信息?

+0

我能够获得精简到“流”数据。看看这个[将异步数据推送到正文的问题]的答案(http://stackoverflow.com/questions/4964828/stream-multiple-body-using-async-sinatra/6552070#6552070)。作为一个警告,这种方法更像是一种黑客攻击,并不是技术上使用'content-type:chunked'的html5流式处理,但我已经在自己的机器上运行了它。 – 2011-07-07 22:10:44

回答

1

在为0.5.4版本的发行说明:

== 0.5.4 Flying Mustard release 
    * Don't read the full body, use direct streaming when sending response. 
     See: Response#each 
     As a result, the Content-Length can not be calculated anymore. 
     You have to do set this in your adapter. All frameworks do it anyway. 
     It improve memory usage and boost speed for low concurrency. 
     Thanks to Kent Sibilev and Ezra for their help on that one. 

然而,当我跑了两个薄实例(在不同的端口,一组为资产主机),在布局的CSS和JS们在控制器动作中的sleep调用已完成执行之前未加载。这是在生产模式下完成的。

我不完全确定它的机制,可能需要设置Thin机架适配器以允许流式传输。

+1

我不确定睡觉会在薄的情况下作为测试工作,因为它会阻止反应堆,并防止在睡觉时瘦身服务其他任何东西。但我可能是错的。 – 2011-08-27 11:09:25