aboutsummaryrefslogtreecommitdiffstats
path: root/actioncable/CHANGELOG.md
diff options
context:
space:
mode:
authorJeremy Daer <jeremydaer@gmail.com>2016-04-05 09:12:55 -0700
committerJeremy Daer <jeremydaer@gmail.com>2016-04-05 09:26:11 -0700
commitfa3537506a12635b51886919589211640ddd3a15 (patch)
tree2774b5ac7e58d63284a05ea33bfc1a9242a6edc5 /actioncable/CHANGELOG.md
parentfca51a7c031b4f17f7a2f353fcfc8a748f6ada7f (diff)
parentcbd15da0274316bae64caae54880fee87853f480 (diff)
downloadrails-fa3537506a12635b51886919589211640ddd3a15.tar.gz
rails-fa3537506a12635b51886919589211640ddd3a15.tar.bz2
rails-fa3537506a12635b51886919589211640ddd3a15.zip
Merge pull request #24224 from danielrhodes/actioncable-websocket-protocols
ActionCable protocol negotiation
Diffstat (limited to 'actioncable/CHANGELOG.md')
-rw-r--r--actioncable/CHANGELOG.md20
1 files changed, 20 insertions, 0 deletions
diff --git a/actioncable/CHANGELOG.md b/actioncable/CHANGELOG.md
index d59e48e00c..5162a31cf8 100644
--- a/actioncable/CHANGELOG.md
+++ b/actioncable/CHANGELOG.md
@@ -1,3 +1,23 @@
+* WebSocket protocol negotiation.
+
+ Introduces an Action Cable protocol version that moves independently
+ of and, hopefully, more slowly than Action Cable itself. Client sockets
+ negotiate a protocol with the Cable server using WebSockets' native
+ subprotocol support:
+ * https://tools.ietf.org/html/rfc6455#section-1.9
+ * https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers#Subprotocols
+
+ If they can't negotiate a compatible protocol (usually due to upgrading
+ the Cable server with a browser still running old JavaScript) then the
+ client knows to disconnect, cease retrying, and tell the app that it hit
+ a protocol mismatch.
+
+ This allows us to evolve the Action Cable message format, handshaking,
+ pings, acknowledgements, and more without breaking older clients'
+ expectations of server behavior.
+
+ *Daniel Rhodes*
+
* Pubsub: automatic stream decoding.
stream_for @room, coder: ActiveSupport::JSON do |message|