Commit Graph

44 Commits

Author SHA1 Message Date
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
Ian Gulliver
109a31e1f4 Much more careful tracking of current createChannel state, so we don't issue duplicate RPCs or create duplicate channels. 2014-05-18 11:47:23 +03:00
Ian Gulliver
b06e94c1c8 Refactor onServerEvent for sanity. 2014-05-18 11:29:16 +03:00
Ian Gulliver
0380679ddb When rebuilding the channel, subscribe via last seen ID, so we don't miss messages from the time we were disconnected. 2014-05-18 11:20:44 +03:00
Ian Gulliver
18d3babc2c Fix debug console. Remove silly subscription logic. 2014-05-18 10:49:38 +03:00
Ian Gulliver
6389787833 Small API changes to move toward subject ACLs. 2014-05-17 19:13:59 +03:00
Ian Gulliver
60c44a25a2 Reliable message delivery across instances using the same namespace. 2014-05-17 18:43:46 +03:00
Ian Gulliver
966c6c8c50 Remove onReady callback and replace with a queue of RPCs ready to send when we have a client_id. 2014-05-17 17:48:08 +03:00
Ian Gulliver
994afde51f Make subscribe/unsubscribe/sendMessage return Promises that fire on RPC return. 2014-05-17 16:52:28 +03:00
Ian Gulliver
96b17ad6ff Switch to using XHR directly, and drop jquery dep. 2014-05-17 16:31:23 +03:00
Ian Gulliver
0247b78c6b Suppress duplicate messages from a client (e.g. when network failure causes retries for RPCs that actually went through). 2014-05-16 23:07:38 +03:00
Ian Gulliver
64e16e7ec1 Add a way to fetch our current profile ID. 2014-05-16 19:03:33 +03:00
Ian Gulliver
5e63eb9ae6 Remove overly-verbose logging 2014-05-16 18:47:21 +03:00
Ian Gulliver
4033861fc6 More reliably close the socket on shutdown(). Make logging include namespace. 2014-05-16 18:44:48 +03:00
Ian Gulliver
0d72e4ca38 Add comments about other people's bad code. 2014-05-16 18:21:59 +03:00
Ian Gulliver
2d2216500a Remove other uses of jquery. 2014-05-16 18:02:09 +03:00
Ian Gulliver
f8089fb7a1 Remove a use of jquery that was causing some ugly. 2014-05-16 18:00:11 +03:00
Ian Gulliver
fe7bab189d Clean up logout handling in tests. 2014-05-16 17:57:26 +03:00
Ian Gulliver
482feee804 Add login test. Fix bugs in socket teardown, RPC retry. Remove chunk of broken merge code pending rewrite. 2014-05-15 19:43:09 +03:00
Ian Gulliver
3f0b7db9dd Add test for two messages with the same key. Fixes to clean shutdown and server-side message duplication. 2014-05-15 16:30:08 +03:00
Ian Gulliver
1e755c9693 Move onReady callback to after channel response from server, so we have a client_id before we start sending other RPCs. 2014-05-14 23:28:56 +03:00
Ian Gulliver
3a3cba9be3 First pass at tests and initial bugfixes/necessary features, including onReady callback. 2014-05-13 19:12:06 +03:00
Ian Gulliver
600054b5ca Keep a client-side key index and add a lookup function. 2014-05-13 18:25:12 +03:00
Ian Gulliver
cf442ed834 Send messages JSON-formatted to support a wider set of types. 2014-05-13 17:48:30 +03:00
Ian Gulliver
b93481cb10 Closure compiler correctness and test script. 2014-05-13 17:41:43 +03:00
Ian Gulliver
1b38d81c9c Remove SetValue/GetValue. Add debug console support for keeping track of streaming key values. 2014-05-11 19:34:42 +03:00
Ian Gulliver
0575b8918d Add a key field to messages and allow lookup of most recent message by key. 2014-05-11 15:43:45 +03:00
Ian Gulliver
3f54bbf284 Provide usernames without further data as more human-readable numbers 2014-05-10 22:26:19 +03:00
Ian Gulliver
a912e973c3 Reverse sort order of initially-returned messages, so the client can generally depend on messages proceeding forward. 2014-05-10 19:20:14 +02:00
Ian Gulliver
bff49f3401 Checkpoint: working subscribe/unsubscribe and message transit, through the debug page 2014-05-10 15:47:33 +02:00
Ian Gulliver
6a6fdc1c41 Make the structure that we pass over the channel or pseudo-channel called an "event".
Make the string that we pass through pubsub called a "message".
2014-05-09 15:00:48 -07:00
Ian Gulliver
e6885042f5 Add pubsub server API, without client API or UI yet. 2014-05-06 22:46:07 -07:00
Ian Gulliver
bb5c0752b1 Move message handling in RPC responses out of individual commands and to a general property of the response. 2014-05-06 13:47:57 -07:00
Ian Gulliver
cf05c0f620 Switch to a multi-request/response API to make batching possible. 2014-05-06 13:38:40 -07:00
Ian Gulliver
0369266d60 Remove the getUser API call and replace it with channel messages. Close channels when log in/out events occur for security. 2014-05-01 14:55:50 -07:00
Ian Gulliver
64f989e3ca Support public flag for StateEntry 2014-05-01 11:33:29 -07:00
Ian Gulliver
b02ddde215 Clean up debug UI and code a bit. Allow empty StateEntry values. 2014-04-30 17:54:48 -07:00
Ian Gulliver
a664bcebac Switch to Array.forEach() where possible. 2014-04-30 11:17:25 -07:00
Ian Gulliver
7069d16aaa Fix handling of initial messages on channel creation by returning them in the
RPC response instead of over the channel.
2014-03-25 14:19:13 -07:00
Ian Gulliver
c99c171dbc Initial snapshot. 2014-03-25 13:43:11 -07:00