我搜索了一种在Rails应用程序和多个Ruby客户端之间构建pub / sub服务的合适方法。
到目前为止,我尝试了faye和faye-rails,但它们并不合适,因为消息排队等待,直到重新启动正在收听某个频道的客户端才传递。 此外,我无法使用像Pusher或PubNub这样的服务。
有什么建议吗?
干杯 马丁
答案 0 :(得分:4)
对于Rails 4,您可以查看ActionController::Live。这不适合您的需求吗?
class MyController < ActionController::Base
include ActionController::Live
def stream
response.headers['Content-Type'] = 'text/event-stream'
100.times {
response.stream.write "hello world\n"
sleep 1
}
rescue IOError
# client disconneted
ensure
response.stream.close
end
end
对于早期的Rails,您可以尝试这种方法:
Ruby on Rails 3: Streaming data through Rails to client,
Rails 3.2 streaming(第二个链接是注意Last-Modified
标题)