Commit Graph

59 Commits

Author SHA1 Message Date
Javan Makhmali a87a5ff513 Rename helper and update comment 2015-12-15 09:53:10 -05:00
Javan Makhmali 11a0b2c6d8 Fix URL helper object property 2015-12-15 09:50:03 -05:00
Keenan Brock beb8a3141b Allow relative urls for createCable
thanks to https://gist.github.com/jlong/2428561
2015-12-14 18:53:53 -05:00
Mike Virata-Stone 62250e38a1 Easy websocket url configuration
Thanks to feedback from @ascrazy, @jeremy, and @javan
2015-12-11 14:57:01 -08:00
Javan Makhmali 365891d5ef Share internal identifiers and message types with the JavaScript client 2015-11-06 14:09:38 -05:00
Pratik Naik e2ed68cc70 Missed updating a method name 2015-11-06 10:49:10 -06:00
Pratik Naik ee06b33e19 Better method names in Javascript based on the feedback from @javan 2015-10-22 10:53:19 -05:00
Pratik Naik 0ce0cf0c04 Allow rejecting subscriptions from the channel 2015-10-21 13:47:48 -05:00
Pratik Naik 84b1f0a3e6 Send subscription confirmation from server to the client to avoid race conditions.
Without this, it's very easy to send messages over a subscription even before the
redis pubsub has been fully initialized.

Now we delay calling the subscription#connected method on the client side until we
receive a subscription confirmation message from the server.
2015-10-16 21:11:21 -05:00
Javan Makhmali c0e554c943 Tweak reconnect timing 2015-10-14 18:07:08 -05:00
Javan Makhmali 889d8ae3d7 Remove immediate reconnect to help avoid thundering herd after server restarts 2015-10-14 18:06:23 -05:00
Javan Makhmali 7ec1290f27 Avoid returning results of loop 2015-10-14 17:09:32 -05:00
Javan Makhmali e8e6937d96 Add delay before reopening 2015-10-14 17:09:10 -05:00
Javan Makhmali e07972711e Improve guard against opening multiple web sockets 2015-10-14 17:06:21 -05:00
Rafael Mendonça França eb8c713c98 .js.coffee -> .coffee
It was initially required, but support for the shorthand has been
 supported since sprockets 2.1. Eventually 4.x will only support the
 shorthand version. Just want to get new people using the prefer stuff
 ASAP.
2015-09-02 02:57:38 -03:00
Javan Makhmali 60adbaf4af Increment style 2015-08-31 08:14:17 -05:00
Javan Makhmali 9e0c0afe1c Guard against opening multiple connections 2015-08-31 07:54:54 -05:00
Javan Makhmali f4b5a4ecdf Immediately reconnect after first disconnect 2015-08-28 18:05:46 -04:00
Javan Makhmali ddfd649c11 Only send "disconnected" notification once 2015-08-28 17:52:46 -04:00
Javan Makhmali 1379e973be Simplify WebSocket reconnects and guard against opening multiple connections 2015-08-28 17:45:07 -04:00
Javan Makhmali 5ee5e419be Record last 20 Subscription notifications for inspection 2015-08-23 17:58:06 -04:00
Javan Makhmali fa362c724d Immediately reconnect when visibilityState changes to "visible" 2015-08-23 17:57:09 -04:00
Javan Makhmali dc4f8b352c Don't unsubscribe on the server when another subscription with the same identifier is active 2015-07-23 17:20:04 -04:00
Lachlan Sylvester 79b05aece1 update documentation to use websocket protocol 2015-07-09 17:21:11 +10:00
David Heinemeier Hansson c708928276 Document the JavaScript classes 2015-07-08 14:42:04 +02:00
David Heinemeier Hansson fdd5c925f5 Move the subscription factory method from the consumer to the subscriptions collection 2015-07-08 11:06:07 +02:00
David Heinemeier Hansson 7c6a7f28eb Rename SubscriptionManager/Subscriber -> Subscriptions
This matches the server-side setup and is more consistent.
2015-07-08 11:00:24 +02:00
Javan Makhmali 026fd5b946 Add URL to inspector 2015-07-07 09:51:40 -04:00
Javan Makhmali 239d79e9eb Add helper to inspect current state 2015-07-07 09:43:22 -04:00
Javan Makhmali ee6b6cabfb Rework event handlers 2015-07-07 08:57:57 -04:00
Javan Makhmali 5da432c45b websocket -> webSocket 2015-07-06 21:43:50 -04:00
Javan Makhmali f2542cd417 Guard against opening multiple WebSocket connections 2015-07-06 21:42:49 -04:00
Javan Makhmali 336d12f97a Rework connection monitor 2015-06-27 16:17:06 -04:00
Javan Makhmali d2c613cd8f Wait for connection to close before reopening it 2015-06-27 16:17:06 -04:00
Javan Makhmali 5541b8fcaf Update connection API with #open, #close, #reopen 2015-06-26 10:24:29 -04:00
Javan Makhmali 315c0fbf19 Fix misspelled variable 2015-06-25 18:46:33 -04:00
Javan Makhmali 84ed139700 Cable.Consumer 2015-06-25 16:24:58 -04:00
Javan Makhmali fa0281aeb1 Cable.Channel -> Cable.Subscription 2015-06-25 16:12:26 -04:00
Javan Makhmali 0e5c9e741a Manage an array of subscribers since there may be more than one subscription to a channel 2015-06-25 16:08:44 -04:00
Javan Makhmali 3509a1226c event -> callbackName 2015-06-25 15:22:39 -04:00
Javan Makhmali 288d289b72 Add "initialized" notification 2015-06-25 14:07:14 -04:00
Javan Makhmali c846f43d46 Extract connection monitoring and rewrite as a subscriber 2015-06-25 13:57:40 -04:00
Javan Makhmali d9d7371c56 Assume subscribers have an identifier 2015-06-25 11:36:40 -04:00
Javan Makhmali 53d0b22aee Switch back to original API and callback naming 2015-06-25 10:32:36 -04:00
Javan Makhmali c7f00661bf Move connection and subscriber code into their own classes 2015-06-25 10:21:53 -04:00
Javan Makhmali 0f761c0d51 Update API to camel cased equivalent of WebSocket's API 2015-06-24 18:22:16 -04:00
Javan Makhmali 268ee5208c Create JavaScript channels identified by their Ruby class name 2015-06-24 14:26:26 -04:00
Javan Makhmali b5e0e58fe1 Require Cable.Channel constructors to define their channel name
Function.name is not widely supported, and a function's name can be mangled by a minifier making it an unreliable property to infer the channel name from
2015-06-23 18:16:31 -04:00
David Heinemeier Hansson f6daf0ef6d Assume channel names include the _channel extension 2015-06-20 16:34:27 +02:00
David Heinemeier Hansson 0e4c2df1e1 Add new convention method for performing channel actions 2015-06-20 16:01:44 +02:00