task_controller.rb:
def create
response.headers["Content-Type"] = "text/javascript"
task = Task.create(:blahblah)
if task
data = { :type => 'task', :method => 'create', :object => task }
$redis.publish('message.test', data.to_json)
send_created(task)
else
send_error
end
end
stream_controller.rb:
def index
response.headers['Content-Type'] = 'text/event-stream'
redis = Redis.new
redis.psubscribe('message.*') do |on|
on.pmessage do |channel, pattern, data|
response.stream.write("data: #{data}\n\n")
end
end
end
同じホストからの 2 回目の接続の後、アプリケーションはダウンし、どのリクエストにも応答しません。ログは明確なので、この問題を解決する方法がわかりません。