@couch-kit/core 0.9.3 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/dist/index.cjs +4 -0
- package/dist/index.js +4 -0
- package/lib/constants.d.ts +13 -1
- package/lib/constants.d.ts.map +1 -1
- package/lib/protocol.d.ts.map +1 -1
- package/lib/types.d.ts.map +1 -1
- package/package.json +2 -3
- package/src/constants.ts +15 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @couch-kit/core
|
|
2
2
|
|
|
3
|
+
## 0.10.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#164](https://github.com/faluciano/react-native-couch-kit/pull/164) [`a157126`](https://github.com/faluciano/react-native-couch-kit/commit/a157126424e4d73dcc7185118d5be0db6719792e) Thanks [@faluciano](https://github.com/faluciano)! - Back the time-sync ping off to 30s once the clock estimate settles
|
|
8
|
+
|
|
9
|
+
`useGameClient`'s clock sync pinged every 5 seconds for the life of the
|
|
10
|
+
connection. It now starts there and doubles to a 30-second ceiling
|
|
11
|
+
(`MAX_SYNC_INTERVAL`), resetting to the fast interval whenever a new socket is
|
|
12
|
+
established, including after a reconnect.
|
|
13
|
+
|
|
14
|
+
The first few pings are what converge the offset; the clock difference they
|
|
15
|
+
measure does not drift on a human timescale, so the fast interval stops earning
|
|
16
|
+
its cost within about a minute. On a relay transport it is not free: each ping
|
|
17
|
+
is a message in and a `PONG` back out, and pings are the only traffic an idle
|
|
18
|
+
table generates at all. A four-player lobby went from 5,760 relay messages an
|
|
19
|
+
hour to under 1,000 while sitting untouched.
|
|
20
|
+
|
|
21
|
+
`rtt` and `getServerTime()` are unchanged in accuracy — both are updated by the
|
|
22
|
+
same `PONG` handling as before, just less often once settled. Games needing the
|
|
23
|
+
old cadence can dispatch their own pings; the constants
|
|
24
|
+
(`DEFAULT_SYNC_INTERVAL`, `MAX_SYNC_INTERVAL`, `SYNC_BACKOFF_FACTOR`) are
|
|
25
|
+
exported from `@couch-kit/core`.
|
|
26
|
+
|
|
3
27
|
## 0.9.3
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
package/dist/index.cjs
CHANGED
|
@@ -49,7 +49,9 @@ __export(exports_src, {
|
|
|
49
49
|
applyMiddleware: () => applyMiddleware,
|
|
50
50
|
actionValidator: () => actionValidator,
|
|
51
51
|
actionLogger: () => actionLogger,
|
|
52
|
+
SYNC_BACKOFF_FACTOR: () => SYNC_BACKOFF_FACTOR,
|
|
52
53
|
MessageTypes: () => MessageTypes,
|
|
54
|
+
MAX_SYNC_INTERVAL: () => MAX_SYNC_INTERVAL,
|
|
53
55
|
MAX_PENDING_PINGS: () => MAX_PENDING_PINGS,
|
|
54
56
|
MAX_FRAME_SIZE: () => MAX_FRAME_SIZE,
|
|
55
57
|
KEEPALIVE_TIMEOUT: () => KEEPALIVE_TIMEOUT,
|
|
@@ -378,6 +380,8 @@ var DEFAULT_MAX_RETRIES = 5;
|
|
|
378
380
|
var DEFAULT_BASE_DELAY = 1000;
|
|
379
381
|
var DEFAULT_MAX_DELAY = 1e4;
|
|
380
382
|
var DEFAULT_SYNC_INTERVAL = 5000;
|
|
383
|
+
var MAX_SYNC_INTERVAL = 30000;
|
|
384
|
+
var SYNC_BACKOFF_FACTOR = 2;
|
|
381
385
|
var MAX_PENDING_PINGS = 50;
|
|
382
386
|
var DEFAULT_DISCONNECT_TIMEOUT = 5 * 60 * 1000;
|
|
383
387
|
var KEEPALIVE_INTERVAL = 30000;
|
package/dist/index.js
CHANGED
|
@@ -310,6 +310,8 @@ var DEFAULT_MAX_RETRIES = 5;
|
|
|
310
310
|
var DEFAULT_BASE_DELAY = 1000;
|
|
311
311
|
var DEFAULT_MAX_DELAY = 1e4;
|
|
312
312
|
var DEFAULT_SYNC_INTERVAL = 5000;
|
|
313
|
+
var MAX_SYNC_INTERVAL = 30000;
|
|
314
|
+
var SYNC_BACKOFF_FACTOR = 2;
|
|
313
315
|
var MAX_PENDING_PINGS = 50;
|
|
314
316
|
var DEFAULT_DISCONNECT_TIMEOUT = 5 * 60 * 1000;
|
|
315
317
|
var KEEPALIVE_INTERVAL = 30000;
|
|
@@ -380,7 +382,9 @@ export {
|
|
|
380
382
|
applyMiddleware,
|
|
381
383
|
actionValidator,
|
|
382
384
|
actionLogger,
|
|
385
|
+
SYNC_BACKOFF_FACTOR,
|
|
383
386
|
MessageTypes,
|
|
387
|
+
MAX_SYNC_INTERVAL,
|
|
384
388
|
MAX_PENDING_PINGS,
|
|
385
389
|
MAX_FRAME_SIZE,
|
|
386
390
|
KEEPALIVE_TIMEOUT,
|
package/lib/constants.d.ts
CHANGED
|
@@ -13,8 +13,20 @@ export declare const DEFAULT_MAX_RETRIES = 5;
|
|
|
13
13
|
export declare const DEFAULT_BASE_DELAY = 1000;
|
|
14
14
|
/** Default maximum delay (ms) cap for reconnection backoff. */
|
|
15
15
|
export declare const DEFAULT_MAX_DELAY = 10000;
|
|
16
|
-
/** Default time sync ping interval (ms). */
|
|
16
|
+
/** Default time sync ping interval (ms) — the interval a fresh socket starts at. */
|
|
17
17
|
export declare const DEFAULT_SYNC_INTERVAL = 5000;
|
|
18
|
+
/**
|
|
19
|
+
* Ceiling (ms) the time-sync interval backs off to once the clock estimate has
|
|
20
|
+
* settled.
|
|
21
|
+
*
|
|
22
|
+
* Pings are the only traffic an idle table generates, and on a relay transport
|
|
23
|
+
* every one of them is a billed message for the ping *and* the host's pong. The
|
|
24
|
+
* offset they measure is a clock difference that does not drift on a human
|
|
25
|
+
* timescale, so the fast interval only earns its cost right after connecting.
|
|
26
|
+
*/
|
|
27
|
+
export declare const MAX_SYNC_INTERVAL = 30000;
|
|
28
|
+
/** Multiplier applied to the time-sync interval after each ping, up to {@link MAX_SYNC_INTERVAL}. */
|
|
29
|
+
export declare const SYNC_BACKOFF_FACTOR = 2;
|
|
18
30
|
/** Maximum number of outstanding pings before cleanup. */
|
|
19
31
|
export declare const MAX_PENDING_PINGS = 50;
|
|
20
32
|
/** Default timeout (ms) before a disconnected player is removed from state. */
|
package/lib/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,wDAAwD;AAIxD,oDAAoD;AACpD,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,4EAA4E;AAC5E,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,0DAA0D;AAC1D,eAAO,MAAM,eAAe,QAAQ,CAAC;AAErC,8FAA8F;AAC9F,eAAO,MAAM,cAAc,QAAc,CAAC;AAE1C,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAEvC,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,wDAAwD;AAIxD,oDAAoD;AACpD,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,4EAA4E;AAC5E,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,0DAA0D;AAC1D,eAAO,MAAM,eAAe,QAAQ,CAAC;AAErC,8FAA8F;AAC9F,eAAO,MAAM,cAAc,QAAc,CAAC;AAE1C,4DAA4D;AAC5D,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAEvC,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAEvC,qGAAqG;AACrG,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,+EAA+E;AAC/E,eAAO,MAAM,0BAA0B,QAAgB,CAAC;AAExD,8FAA8F;AAC9F,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAExC,8FAA8F;AAC9F,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAEvC;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAwBnC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBpE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGrD"}
|
package/lib/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,aAAa,GACrB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D,GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,CAAC;AAG7C,MAAM,MAAM,WAAW,GACnB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CACnE,GACD;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACrE,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CACpE,GACD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAElE,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,aAAa,GACrB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D,GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GAChE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,IAAI,CAAA;CAAE,CAAC;AAG7C,MAAM,MAAM,WAAW,GACnB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CACnE,GACD;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACrE,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CACpE,GACD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAElE,eAAO,MAAM,YAAY;aAEvB,IAAI,EAAE,MAAM;aACZ,MAAM,EAAE,QAAQ;aAChB,IAAI,EAAE,MAAM;aACZ,aAAa,EAAE,eAAe;aAG9B,OAAO,EAAE,SAAS;aAClB,YAAY,EAAE,cAAc;aAC5B,IAAI,EAAE,MAAM;aACZ,WAAW,EAAE,aAAa;aAC1B,KAAK,EAAE,OAAO;CACN,CAAC"}
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IACxD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,CAAC,CAAA;CAAE,GACnC;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACxD,GACD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAElE,+CAA+C;AAC/C,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IACxD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,CAAC,CAAA;CAAE,GACnC;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACxD,GACD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAElE,+CAA+C;AAC/C,eAAO,MAAM,mBAAmB;aAC9B,OAAO,EAAE,aAAa;aACtB,aAAa,EAAE,mBAAmB;aAClC,WAAW,EAAE,iBAAiB;aAC9B,kBAAkB,EAAE,wBAAwB;aAC5C,cAAc,EAAE,oBAAoB;CAC5B,CAAC;AAEX;;;;;GAKG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,SAAS,OAAO,IAAI,CACjE,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,CAAC,KACN,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@couch-kit/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"provenance": true
|
|
@@ -46,11 +46,10 @@
|
|
|
46
46
|
"build": "bun build ./src/index.ts --outdir ./dist --target browser && bun build ./src/index.ts --outfile ./dist/index.cjs --target browser --format cjs && tsc -p tsconfig.build.json",
|
|
47
47
|
"prepublishOnly": "bun run build",
|
|
48
48
|
"test": "bun test",
|
|
49
|
-
"lint": "eslint src/",
|
|
50
49
|
"typecheck": "tsc --noEmit",
|
|
51
50
|
"clean": "rm -rf dist lib"
|
|
52
51
|
},
|
|
53
52
|
"devDependencies": {
|
|
54
|
-
"typescript": "^
|
|
53
|
+
"typescript": "^7.0.0"
|
|
55
54
|
}
|
|
56
55
|
}
|
package/src/constants.ts
CHANGED
|
@@ -23,9 +23,23 @@ export const DEFAULT_BASE_DELAY = 1000;
|
|
|
23
23
|
/** Default maximum delay (ms) cap for reconnection backoff. */
|
|
24
24
|
export const DEFAULT_MAX_DELAY = 10000;
|
|
25
25
|
|
|
26
|
-
/** Default time sync ping interval (ms). */
|
|
26
|
+
/** Default time sync ping interval (ms) — the interval a fresh socket starts at. */
|
|
27
27
|
export const DEFAULT_SYNC_INTERVAL = 5000;
|
|
28
28
|
|
|
29
|
+
/**
|
|
30
|
+
* Ceiling (ms) the time-sync interval backs off to once the clock estimate has
|
|
31
|
+
* settled.
|
|
32
|
+
*
|
|
33
|
+
* Pings are the only traffic an idle table generates, and on a relay transport
|
|
34
|
+
* every one of them is a billed message for the ping *and* the host's pong. The
|
|
35
|
+
* offset they measure is a clock difference that does not drift on a human
|
|
36
|
+
* timescale, so the fast interval only earns its cost right after connecting.
|
|
37
|
+
*/
|
|
38
|
+
export const MAX_SYNC_INTERVAL = 30000;
|
|
39
|
+
|
|
40
|
+
/** Multiplier applied to the time-sync interval after each ping, up to {@link MAX_SYNC_INTERVAL}. */
|
|
41
|
+
export const SYNC_BACKOFF_FACTOR = 2;
|
|
42
|
+
|
|
29
43
|
/** Maximum number of outstanding pings before cleanup. */
|
|
30
44
|
export const MAX_PENDING_PINGS = 50;
|
|
31
45
|
|