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 = Streamer.new
end

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.
Am 09.12.2012 14:28 schrieb “Ravi L.” [email protected]:

On Sat, Dec 8, 2012 at 6:49 AM, Ravi L. [email protected]
wrote:

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.

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

HTH,

Hassan S. ------------------------ [email protected]
http://about.me/hassanschroeder
twitter: @hassan

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

thanks
ravi

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

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs