如何在sinatra的溪流中停下来?

时间:2013-02-21 20:27:53

标签: ruby sinatra

我正在尝试使用来自流式传输块的HTTP错误代码进行响应,但Web服务器会抛出异常。在这种情况下,这样做的正确方法是什么?

/var/lib/gems/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:803:in `throw':
uncaught throw :halt (ArgumentError)

我的代码:

require 'sinatra/base'
class App < Sinatra::Base
  get '/' do
    stream :keep_open do |out|
      error 401
    end
  end
  run! if app_file == $0
end

1 个答案:

答案 0 :(得分:0)

根据我对#stream()的理解,已发送响应标头。虽然您可以继续流式传输数据(正文),甚至关闭连接,但我认为您可以在已经发送之后修改标头。我正在挖掘Sinatra YARD文档来验证,但我很确定这是你的问题。