2

我寻找一种合适的方式在 Rails 应用程序和多个 Ruby 客户端之间构建发布/订阅服务。

到目前为止,我尝试了 faye 和 faye-rails,但它们并不合适,因为消息会排队等待,直到正在侦听某个通道的客户端重新启动后才会传递。我也无法使用 Pusher 或 PubNub 之类的服务。

有什么建议吗?

干杯马丁

4

1 回答 1

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 clientRails 3.2 streaming(第二个链接是注意Last-Modified标题)

于 2013-07-17T18:22:03.737 回答