2014-03-25 47 views
4

我正在試圖在Puma服務器上使用rails ActiveController::Live進行一個小測試。我通過rails s puma啓動Puma服務器,並使用curl localhost:3000/messages/events進行測試。但是,在數據一次全部返回之前有一段很長的停頓,這與使用WEBrick相同。那麼,爲什麼Puma服務器不能直播結果呢?rails 4 live stream不能與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 

回答

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 
相關問題