1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-27 09:12:41 +01:00
phorge-phorge/webroot/rsrc/externals/javelin/lib
epriestley ebcab8edb6 Namespace Aphlict clients by request path, plus other fixes
Summary:
Fixes T7130. Fixes T7041. Fixes T7012.

Major change here is partitioning clients. In the Phacility cluster, being able to get a huge pile of instances on a single server -- without needing to run a process per instance -- is desirable.

To accomplish this, just bucket clients by the path they connect with. This will let us set client URIs to `/instancename/` and then route connections to a small set of servers. This degrades cleanly in the common case and has no effect on installs which don't do instancing.

Also fix two unrelated issues:

  - Fix the timeouts, which were incorrectly initializing in `open()` (which is called during reconnect, causing them to reset every time). Instead, initialize in the constructor. Cap timeout at 5 minutes.
  - Probably fix subscriptions, which were using a property with an object definition. Since this is by-ref, all concrete instances of the object share the same property, so all users would be subscribed to everything. Probably.

Test Plan:
  - Hit notification status page, saw version bump and instance/path name.
  - Saw instance/path name in client and server logs.
  - Stopped server, saw reconnects after 2, 4, 16, ... seconds.
  - Sent test notification; received test notification.
  - Didn't explicitly test the subscription thing but it should be obvious by looking at `/notification/status/` shortly after a push.

Reviewers: joshuaspence, btrahan

Reviewed By: btrahan

Subscribers: epriestley

Maniphest Tasks: T7041, T7012, T7130

Differential Revision: https://secure.phabricator.com/D11769
2015-02-16 11:31:15 -08:00
..
__tests__ Remove an unused variable 2015-01-20 21:25:40 +11:00
control Use single quotes in JavaScript files 2015-01-20 08:53:47 +11:00
behavior.js Remove @group annotations 2014-07-10 08:12:48 +10:00
Cookie.js Fix another undefined variable 2015-01-20 08:55:04 +11:00
DOM.js Fix anchor-clicking scroll positions 2015-01-28 08:26:10 -08:00
History.js Quicksand, an ignoble successor to Quickling 2015-01-27 14:52:09 -08:00
JSON.js Remove @group annotations 2014-07-10 08:12:48 +10:00
Leader.js Fix an undefined variable 2015-01-23 07:22:39 +11:00
Mask.js Remove @group annotations 2014-07-10 08:12:48 +10:00
Quicksand.js Quicksand, an ignoble successor to Quickling 2015-01-27 14:52:09 -08:00
Request.js Fix various lint issues in rJX 2015-01-14 07:59:56 +11:00
Resource.js Fix various lint issues in rJX 2015-01-14 07:59:56 +11:00
Routable.js Provide a global router for Ajax requests 2014-05-05 10:57:42 -07:00
Router.js Provide a global router for Ajax requests 2014-05-05 10:57:42 -07:00
Scrollbar.js Fix mouse access to Workboard scrollbars 2015-01-29 07:10:35 -08:00
URI.js Remove @group annotations 2014-07-10 08:12:48 +10:00
Vector.js Fix anchor-clicking scroll positions 2015-01-28 08:26:10 -08:00
WebSocket.js Namespace Aphlict clients by request path, plus other fixes 2015-02-16 11:31:15 -08:00
Workflow.js Fix dialog z-index issue 2015-01-29 07:10:14 -08:00