显然,带有 proc 的 render :text 方法在 rails 3.2 中不再可用以流式传输数据。我按照以下说明进行操作
并尝试使用迭代器流式传输数据
class Streamer
attr_reader :url,:uri
def initialize(url)
puts "there"
@url = url
@uri = URI.parse url
end
def each
Net::HTTP.start(uri.host) do |http|
resp = http.get(uri.path) do |str|
puts str
end
end
end
end
这会将流式数据打印到控制台,但最终目标是流式传输到客户端,所以我将其更改为
resp = http.get(uri.path) do |str|
yield str
end
此代码不起作用。该请求只是没有回复任何内容。我在 webrock 上运行。因此,这种方法可能根本不适用于 webrick,或者代码有什么问题。
帮助表示赞赏。问候,菲尔