aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Moss <maclover7@users.noreply.github.com>2016-02-03 20:58:27 -0500
committerJon Moss <maclover7@users.noreply.github.com>2016-02-03 20:58:27 -0500
commit8ee91d4051e679d6d6bbb6252796bbedde7d782c (patch)
treef57a680b1de93e9d9efc09311ce8c48bdc734e3f
parent089d98e842be3da3c1eac69ea5ccb00682c408f3 (diff)
parent3366a3ad780b140805890b2d3b2d613acec441e4 (diff)
downloadrails-8ee91d4051e679d6d6bbb6252796bbedde7d782c.tar.gz
rails-8ee91d4051e679d6d6bbb6252796bbedde7d782c.tar.bz2
rails-8ee91d4051e679d6d6bbb6252796bbedde7d782c.zip
Merge pull request #23452 from phusion/action_cable
Document the fact that Action Cable does not require a multi-threaded app server
-rw-r--r--actioncable/README.md13
1 files changed, 11 insertions, 2 deletions
diff --git a/actioncable/README.md b/actioncable/README.md
index ac57532b62..6e74551483 100644
--- a/actioncable/README.md
+++ b/actioncable/README.md
@@ -448,8 +448,17 @@ as long as you haven’t committed any thread-safety sins.
But this also means that Action Cable needs to run in its own server process.
So you'll have one set of server processes for your normal web work, and another
-set of server processes for the Action Cable. The former can be single-threaded,
-like Unicorn, but the latter must be multi-threaded, like Puma.
+set of server processes for the Action Cable.
+
+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://old.blog.phusion.nl/2013/01/23/the-new-rack-socket-hijacking-api/)
+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