我希望从JavaScript发起一个长轮询请求,这很好,我期望我的Ruby程序将多个主体部分流式传输到JavaScript。为什么以下(伪)代码不起作用?
require 'rubygems'
require 'sinatra/async'
require 'eventmachine'
require 'thin'
require 'json'
class Test < Sinatra:Base
register Sinatra::Async
aget '/process' do
for c in 1..10
body {
{ :data => [ "this is part #{c}" ] }.to_json
end
end
end
run!
end
也许我误解了长轮询和异步的作用,但我的期望是能够向客户端发送多个响应体?我需要使用EventMachine或其他什么东西吗?
谢谢。
body 'asdf'
,你只会在页面上看到'asdf'。我发现有一个线索建议使用write或response.write代替。这似乎更好,因为我可以看到浏览器中仍然保持着我的连接。但问题又来了,连续两个write
调用的行为不符合预期。 - Eric Hu