Streaming in Rails 3.2

Hello all,

I am writing an app to stream log files (or any files) on the browser as they grow. The idea is that the rails app should do a 'tail -f' on the file and keep sending the data to the browser. I was thinking if there was any way to achieve this in rails.

Through googling, I came across the 'streaming' support in rails. But, I didn't get it working. Here is what I tried

class LogsController < ApplicationController

  def index     headers['X-Accel-Buffering'] = 'no'     self.status = 200     self.response_body =   end


class Streamer   def each     100000.times do |n|       yield "Streaming...#{n} "       if (n % 1000 == 0)         sleep 1       end     end   end end

The browser time outs waiting for the data.

Can you please let me know how can I achieve this functionality in rails?

thanks ravi

I the client poll every few seconds via AJAX. There is no other way.

You might want to look into "WebSockets", which allow keeping a connection open between client and server.


The other way is to couple your app with either Faye or Juggernaut.

Thanks all for your responses. I am looking to use Web sockets.