I'm starting a new Rails project probably using 4.1 or 4.2. The project
needs the ability for user's browsers to get updates via push
notifications. I know that Rails 4 kinda sorta added that but the last
time I looked it was shaky.
To sketch out what I'd like: suppose a user is looking at a page.
Think of it as a user looking at a history of activity for a project.
Another users does an update. I want the first user's browser to get
the new update. I don't think will work in this situation so I'm
looking for the server to push the updates out.
What is the current technology? Does Rails 4.1 or 4.2 have everything
it needs or do I still need some add on gems? If so which ones? If
Rails is complete, what are some areas of the Rails documentation to
Thank you for your time,
ActionController::Live all the way !!!
You may also want to look into recently introduced Websockets functionality on Heroku
more information here https://devcenter.heroku.com/articles/ruby-websockets
Thank you to Vivek and Jason.
One extra note: this is an internal restricted web site so I can't use
Heroku for this particular project but that type of information is also
interesting to me.
On a side note: in the past, I've used Apache. Sometimes with Passenger
and sometimes without. I'm curious on httpd recommendations as well.
Thank you again,
Being old(er), I'm like you. The kids all use nginx these days, often with thin as the webserver. Your mileage may vary.
Obviously, if you're using websockets, you'll need an architecture that supports that.
I’d recommend puma ( Application Server ) with Nginx ( Webserver)
We’ve used pusher.com in production for 2+ years with no issues. Pubnub is an option as well, but their packet size restrictions were/are(?) too small for us. Both have clean APIs, need no extra stuff (e.g. Redis), give nice stats, etc. Looking at ActionController::Live, the main diff seems to be whether you maintain and scale the functionality or someone else does it for you through a simple API and $20/month.
I’ve used ActionController::Live with Passenger and Apache, so the stack you’re familiar with should work just fine.