aboutsummaryrefslogtreecommitdiffstats
path: root/actioncable/README.md
diff options
context:
space:
mode:
authorHongli Lai (Phusion) <hongli@phusion.nl>2016-02-03 18:09:58 +0100
committerHongli Lai (Phusion) <hongli@phusion.nl>2016-02-03 19:07:16 +0100
commit3366a3ad780b140805890b2d3b2d613acec441e4 (patch)
tree51e0fce7fa0e5f2d737be4752987cc753e33134d /actioncable/README.md
parent8a84f1c047ebb59dec7a7ece9355da9c7b0ae6b7 (diff)
downloadrails-3366a3ad780b140805890b2d3b2d613acec441e4.tar.gz
rails-3366a3ad780b140805890b2d3b2d613acec441e4.tar.bz2
rails-3366a3ad780b140805890b2d3b2d613acec441e4.zip
Document the fact that Action Cable does not require a multi-threaded app server
[ci skip]
Diffstat (limited to 'actioncable/README.md')
-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