Commit Graph

89 Commits

Author SHA1 Message Date
Ian Gulliver
959049af59 Add connected() function. 2014-06-17 21:28:47 -07:00
Ian Gulliver
c210d826b2 Send profile with every RPC response. 2014-06-17 21:14:59 -07:00
Ian Gulliver
a1ee25a937 Clear pin state before subscribe events. 2014-06-17 21:06:43 -07:00
Ian Gulliver
3629f3c266 Const correctness for private members 2014-06-15 14:46:06 -07:00
Ian Gulliver
bf07fc6196 Doc cleanups. Make public docstrings refer to the website. 2014-06-14 12:23:19 -07:00
Ian Gulliver
10b4c10e83 Make uuid() public 2014-06-13 22:13:01 -07:00
Ian Gulliver
7d45f44265 Survive clearing of localStorage while we're running by caching client ID. 2014-06-13 21:33:19 -07:00
Ian Gulliver
40229ff0c0 Return the new message for sendMessage and pin RPCs. Pass it through the sendMessage Promise callback. 2014-06-12 23:12:00 -07:00
Ian Gulliver
fed379ddc7 Remove duplicate message logging; they're a normal thing now. 2014-06-12 22:55:27 -07:00
Ian Gulliver
828a9c50ea Add bulk subscribe support. 2014-06-11 21:46:50 -07:00
Ian Gulliver
bc42e8d5e3 Compiler fixes 2014-06-11 21:32:17 -07:00
Ian Gulliver
d09eee1259 Clean up use of promises to do more sensible things with exceptions. 2014-06-11 21:11:22 -07:00
Ian Gulliver
1904d6bf50 More reliable document ready detection. 2014-06-09 23:04:18 -07:00
Ian Gulliver
8af50befbe Don't try to add things to the DOM until it loads. 2014-06-09 22:47:51 -07:00
Ian Gulliver
2692d540e8 Change delay to milliseconds and make the backoff/stagger algorithm smarter. 2014-06-09 22:11:34 -07:00
Ian Gulliver
94491649a1 Cleanups from documentation effort. 2014-06-08 11:38:40 -07:00
Ian Gulliver
074820d770 Tracking bugfix, annotation fixes. 2014-06-01 21:49:29 -07:00
Ian Gulliver
c004d27e9d Get javascript loading out of the critical path. 2014-06-01 15:27:43 -07:00
Ian Gulliver
b84b733e56 Remove RPC queueing now that we're doing client-side client_id generation. 2014-06-01 13:41:45 -07:00
Ian Gulliver
fd5569c5dc Generate the client_id on the client, so we don't need a round trip to get it before we can send arbitrary RPCs.
This changes the Profile/Client relationship; we never needed to be transactional with them, so split them up entirely so we can reparent Clients.
2014-05-31 23:25:15 -07:00
Ian Gulliver
0ab2fe620c lint/compiler cleanups 2014-05-31 11:51:16 -07:00
Ian Gulliver
54dcc98b00 Google analytics support for load and subscribe events. 2014-05-31 11:41:37 -07:00
Ian Gulliver
14ba801e09 Fix resubscription broken by recent change. 2014-05-30 17:00:06 -07:00
Ian Gulliver
e1288a67fb Fixes for read/write ACLs on server and client side 2014-05-30 16:42:30 -07:00
Ian Gulliver
8982e0e2b5 Fix nasty retry bug that causes us to not reconnect. 2014-05-30 11:23:32 -07:00
Ian Gulliver
5d39c9abdf Last ugly style guide compliance fixes 2014-05-28 23:25:53 -07:00
Ian Gulliver
d5941a49f7 Whitespace for strict linting. 2014-05-28 21:52:12 -07:00
Ian Gulliver
9e791bcf3b Move types inside our namespace to avoid polluting globals. Make some private. 2014-05-28 21:43:27 -07:00
Ian Gulliver
6ca7247fc9 Lots of style fixes for JavaScript 2014-05-28 21:32:01 -07:00
Ian Gulliver
4427af1505 Combined our two post-connect functions into one, so we make less HTTP calls. 2014-05-27 16:32:59 -07:00
Ian Gulliver
6d6950624f Add onConnect/onDisconnect callbacks 2014-05-27 15:48:03 -07:00
Ian Gulliver
1dd1490518 Pin test, fixes, cleanup 2014-05-27 15:33:51 -07:00
Ian Gulliver
d96c31abf7 Remove stupid cycling UUID scheme. Instead, limit server-side pin deduping to a single instance. 2014-05-27 14:54:16 -07:00
Ian Gulliver
43dec31217 Attempt more reliable handling for connecting with a bad instance ID. 2014-05-27 14:43:59 -07:00
Ian Gulliver
fd94334133 Change our sender IDs when re-pinning, so we don't race against duping ourselves. 2014-05-27 14:33:17 -07:00
Ian Gulliver
e51d42a842 Lots of closure annotation to allow JavaScript compile/verification. 2014-05-27 14:29:12 -07:00
Ian Gulliver
b6d5e6d6ae Fix completely broken repin-on-connect behavior 2014-05-27 10:35:00 -07:00
Ian Gulliver
070521493b Add getLastMessage() for easier key/value storing. 2014-05-26 10:02:37 -07:00
Ian Gulliver
898121dabd Remove the concept of keys; they can just be encoded into subject names. 2014-05-25 23:50:53 -07:00
Ian Gulliver
8e7af2f5cf Add support for ephemeral messages that are tied to an open channel, aka "pins". 2014-05-25 23:40:56 -07:00
Ian Gulliver
1e91f5babb Per-RPC retry support, used when subscribe() can't find an active instance. 2014-05-23 15:32:31 -07:00
Ian Gulliver
c6cbae4885 Generate a new instance_id when we reconnect the channel, so we look like an entirely different instance. 2014-05-23 15:10:49 -07:00
Ian Gulliver
6bfa10e82a Add a third level construct under Profile and Client, Instance. This allows more than one connected object with the same client credentials. 2014-05-23 10:31:52 -07:00
Ian Gulliver
1cb61cdf62 Split profile() into getProfile() and currentProfile() 2014-05-19 21:11:19 +03:00
Ian Gulliver
f27fc7977b Add real subject ACL support and tests. 2014-05-19 20:52:57 +03:00
Ian Gulliver
c361d41fcf Delay RPC sending and subject resubscription until we have an open channel on the client side, to try to work around prod appengine disappearing messages. Add a test for channel reconnection and re-subscription. 2014-05-19 15:21:21 +03:00
Ian Gulliver
640da84124 Make message ordering test more comprehensive and fix a message ordering bug. 2014-05-18 22:13:48 +03:00
Ian Gulliver
1ee22da229 Add a message ordering test. Fix a nasty ID generation bug. 2014-05-18 21:58:40 +03:00
Ian Gulliver
27e857197a Add support for re-subscribing to the same subject with different message fetching parameters. 2014-05-18 19:31:22 +03:00
Ian Gulliver
6d7745c6cd Support last_id in subscribe() API. Add a subscription state machine to avoid sending subscribe requests with bad parameters. 2014-05-18 19:06:27 +03:00