ruby - 从 Sinatra/Rack 应用程序流式传输数据

标签 ruby sinatra rack

我正在尝试从 Ruby (1.9.1p378) Sinatra (1.0) Rack (1.2.1) 应用程序流式传输文本数据 (XML/JSON)。建议的解决方案(例如 Is there a way to flush html to the wire in Sinatra)似乎不起作用 - 当我产生某个无限流的元素时(例如来自 %w(foo bar).cycle),服务器只是阻塞。我尝试将 webrickthin 作为服务器。

关于完成这项工作有什么建议吗?我应该使用 http://sinatra.rubyforge.org/api/classes/Sinatra/Streaming.html 吗?如果可以,我将如何在我的应用程序中使用它?

最佳答案

从 Sinatra 1.3 开始,您还可以使用新的流式 API:

get '/evented' do
  stream(:keep_open) do |out|
    EventMachine::PeriodicTimer.new(1) { out << "#{Time.now}\n" }
  end
end

关于ruby - 从 Sinatra/Rack 应用程序流式传输数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3669674/

相关文章:

iOS 移动设备管理 - SCEP 服务器返回无效响应

ruby - 如何去除 ERB 模板中的 HTML 空格?

linux - 如何知道linux上安装了哪个版本的sinatra?

ruby-on-rails - 使用 Rack 静态页面写入 404 错误页面路由

ruby-on-rails - rvm rack ruby​​ 错误已经初始化常量 WFKV_

ruby - ruby 中最好的数值精度是多少

ruby-on-rails - Axlsx - 格式化单元格内的文本

ruby-on-rails - rails 查询超时::错误:执行已过期

java - Rail 的 'Gotchas' 和学习曲线 - 它会停止吗?

ruby - 如何使用 "sinatra/reloader"?