【问题标题】:rails 4 live stream doesn't work with Pumarails 4 直播不适用于 Puma
【发布时间】:2014-03-25 21:50:58
【问题描述】:

我正在尝试使用 Puma 服务器在 Rails ActiveController::Live 上实现一个小测试。我通过rails s puma启动了Puma服务器,并使用curl localhost:3000/messages/events进行测试。然而,在一次返回数据之前有很长的停顿,这与使用 WEBrick 相同。那么为什么 Puma 服务器不直播结果呢?

class MessagesController < ApplicationController
  include ActionController::Live

  def index
    @messages = Message.all
  end

  def create
    @message = Message.create!(params[:message].permit(:content, :name))
  end

  def events
    3.times do |n|
      response.stream.write "#{n}...\n\n"
      sleep 2
    end
  ensure
    response.stream.close
  end
end

【问题讨论】:

    标签: ruby-on-rails ruby live-streaming puma


    【解决方案1】:

    你需要设置响应头

    def events
       response.headers['Content-Type'] = 'text/event-stream'
       3.times do |n|
         response.stream.write "#{n}...\n\n"
         sleep 2
       end
    ensure
       response.stream.close
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-22
      • 1970-01-01
      • 2019-07-27
      • 1970-01-01
      • 2017-04-21
      • 2014-02-17
      • 2015-11-16
      • 2016-06-18
      相关资源
      最近更新 更多