* 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| # `message` is a Ruby hash here instead of a JSON string The `coder` must respond to `#decode`. Defaults to `coder: nil` which skips decoding entirely. *Jeremy Daer* * Add ActiveSupport::Notifications to ActionCable::Channel. *Matthew Wear* * Safely support autoloading and class unloading, by preventing concurrent loads, and disconnecting all cables during reload. *Matthew Draper* * Ensure ActionCable behaves correctly for non-string queue names. *Jay Hayes* ## Rails 5.0.0.beta3 (February 24, 2016) ## * Added `em_redis_connector` and `redis_connector` to `ActionCable::SubscriptionAdapter::EventedRedis` and added `redis_connector` to `ActionCable::SubscriptionAdapter::Redis`, so you can overwrite with your own initializers. This is used when you want to use different-than-standard Redis adapters, like for Makara distributed Redis. *DHH* ## Rails 5.0.0.beta2 (February 01, 2016) ## * Support PostgreSQL pubsub adapter. *Jon Moss* * Remove EventMachine dependency. *Matthew Draper* * Remove Celluloid dependency. *Mike Perham* * Create notion of an `ActionCable::SubscriptionAdapter`. Separate out Redis functionality into `ActionCable::SubscriptionAdapter::Redis`, and add a PostgreSQL adapter as well. Configuration file for ActionCable was changed from`config/redis/cable.yml` to `config/cable.yml`. *Jon Moss* ## Rails 5.0.0.beta1 (December 18, 2015) ## * Added to Rails! *DHH*