From e78e0e2a42c77ee82611d01b712505577c8dc38e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20Mendon=C3=A7a=20Fran=C3=A7a?= Date: Sun, 26 Jun 2016 16:09:36 -0300 Subject: Fix Action Cable README [ci skip] --- actioncable/README.md | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'actioncable/README.md') diff --git a/actioncable/README.md b/actioncable/README.md index 0c8467916c..50523d4b0f 100644 --- a/actioncable/README.md +++ b/actioncable/README.md @@ -443,11 +443,20 @@ The Ruby side of things is built on top of [websocket-driver](https://github.com ## Deployment - $ gem install actioncable - -Source code can be downloaded as part of the Rails project on GitHub - -* https://github.com/rails/rails/tree/master/actioncable +Action Cable is powered by a combination of WebSockets and threads. All of the +connection management is handled internally by utilizing Ruby’s native thread +support, which means you can use all your regular Rails models with no problems +as long as you haven’t committed any thread-safety sins. + +The Action Cable server does _not_ need to be a multi-threaded application server. +This is because Action Cable uses the [Rack socket hijacking API](http://www.rubydoc.info/github/rack/rack/file/SPEC#Hijacking) +to take over control of connections from the application server. Action Cable +then manages connections internally, in a multithreaded manner, regardless of +whether the application server is multi-threaded or not. So Action Cable works +with all the popular application servers -- Unicorn, Puma and Passenger. + +Action Cable does not work with WEBrick, because WEBrick does not support the +Rack socket hijacking API. ## License -- cgit v1.2.3