@tribe-nest/media-client 0.2.1 → 0.4.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.
Files changed (40) hide show
  1. package/build/core/index.d.ts +1 -1
  2. package/build/core/index.d.ts.map +1 -1
  3. package/build/core/index.js.map +1 -1
  4. package/build/core/reconnect.d.ts +29 -0
  5. package/build/core/reconnect.d.ts.map +1 -1
  6. package/build/core/reconnect.js +49 -9
  7. package/build/core/reconnect.js.map +1 -1
  8. package/build/core/signal.d.ts +9 -0
  9. package/build/core/signal.d.ts.map +1 -1
  10. package/build/core/signal.js +18 -2
  11. package/build/core/signal.js.map +1 -1
  12. package/build/core/state.d.ts +28 -0
  13. package/build/core/state.d.ts.map +1 -1
  14. package/build/core/state.js +106 -7
  15. package/build/core/state.js.map +1 -1
  16. package/build/index.d.ts +1 -1
  17. package/build/index.d.ts.map +1 -1
  18. package/build/index.js.map +1 -1
  19. package/build/react/index.d.ts +63 -11
  20. package/build/react/index.d.ts.map +1 -1
  21. package/build/react/index.js +229 -5
  22. package/build/react/index.js.map +1 -1
  23. package/build/room/device.d.ts +6 -0
  24. package/build/room/device.d.ts.map +1 -1
  25. package/build/room/room.d.ts +235 -1
  26. package/build/room/room.d.ts.map +1 -1
  27. package/build/room/room.js +627 -24
  28. package/build/room/room.js.map +1 -1
  29. package/package.json +2 -2
  30. package/src/core/_tests/reconnect.spec.ts +92 -0
  31. package/src/core/_tests/state.spec.ts +92 -0
  32. package/src/core/index.ts +2 -0
  33. package/src/core/reconnect.ts +76 -9
  34. package/src/core/signal.ts +16 -2
  35. package/src/core/state.ts +153 -10
  36. package/src/index.ts +2 -0
  37. package/src/react/index.tsx +261 -7
  38. package/src/room/_tests/room.spec.ts +720 -3
  39. package/src/room/device.ts +6 -0
  40. package/src/room/room.ts +733 -25
@@ -1 +1 @@
1
- {"version":3,"file":"room.js","sourceRoot":"","sources":["../../src/room/room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room.js","sourceRoot":"","sources":["../../src/room/room.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tribe-nest/media-client",
3
- "version": "0.2.1",
3
+ "version": "0.4.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -44,7 +44,7 @@
44
44
  "prepack": "npm run build"
45
45
  },
46
46
  "dependencies": {
47
- "@tribe-nest/media-protocol": "^1.0.0",
47
+ "@tribe-nest/media-protocol": "^1.3.0",
48
48
  "mediasoup-client": "^3.22.0",
49
49
  "zod": "^3.25.76"
50
50
  },
@@ -178,3 +178,95 @@ describe("the supervisor loop", () => {
178
178
  expect(slept).toEqual([]);
179
179
  });
180
180
  });
181
+
182
+ describe("the time budget: a clock where the callers with a UI need one", () => {
183
+ const options = { random: () => 0.5, jitter: "none" as const };
184
+
185
+ it("without elapsedMs, keeps the historical attempts-only policy exactly", () => {
186
+ const decision = decideReconnect({
187
+ cause: { type: "dropped", code: 1006 },
188
+ attempt: 10,
189
+ options,
190
+ });
191
+ expect(decision).toEqual({ action: "stop", reason: "attempts_exhausted" });
192
+ });
193
+
194
+ it("with elapsedMs, retries PAST maxAttempts at a jittered maxMs cadence", () => {
195
+ const decision = decideReconnect({
196
+ cause: { type: "dropped", code: 1006 },
197
+ attempt: 10,
198
+ elapsedMs: 60_000,
199
+ options: { random: () => 0.5 },
200
+ });
201
+ // A restart takes longer than the ladder; past it, steady decorrelated
202
+ // probes rather than giving up on a node that is about to come back.
203
+ expect(decision).toMatchObject({ action: "reconnect", delayMs: Math.round(0.5 * 30_000) });
204
+ });
205
+
206
+ it("stops when the BUDGET runs out, under the same reason every consumer already handles", () => {
207
+ const decision = decideReconnect({
208
+ cause: { type: "dropped", code: 1006 },
209
+ attempt: 3,
210
+ elapsedMs: 300_000,
211
+ options,
212
+ });
213
+ expect(decision).toEqual({ action: "stop", reason: "attempts_exhausted" });
214
+ });
215
+
216
+ it("probes a draining node at a steady 5-10s cadence, exempt from ladder and pin alike", () => {
217
+ // A known-deploy refusal is not an error: polite jittered probes, not an
218
+ // escalating ladder and not a 30s pin, whatever the attempt count says.
219
+ const early = decideReconnect({
220
+ cause: { type: "refused", code: "node_draining" },
221
+ attempt: 1,
222
+ elapsedMs: 10_000,
223
+ options: { random: () => 0 },
224
+ });
225
+ expect(early).toMatchObject({ action: "reconnect", delayMs: 5_000 });
226
+
227
+ const late = decideReconnect({
228
+ cause: { type: "refused", code: "node_draining" },
229
+ attempt: 20,
230
+ elapsedMs: 120_000,
231
+ options: { random: () => 0.5 },
232
+ });
233
+ expect(late).toMatchObject({ action: "reconnect", delayMs: 7_500 });
234
+ });
235
+ });
236
+
237
+ describe("the clock line: what changes with elapsedMs and what must not", () => {
238
+ it("keeps the HISTORICAL node_draining delay for clock-less callers, byte for byte", () => {
239
+ // A headless superviseConnection loop passes no elapsedMs. Its delay for
240
+ // a draining refusal was max(backoff, baseMs); the 5-10s cadence is the
241
+ // room's, not theirs.
242
+ const decision = decideReconnect({
243
+ cause: { type: "refused", code: "node_draining" },
244
+ attempt: 2,
245
+ options: { baseMs: 500, maxMs: 30_000, factor: 2, jitter: "none", random: () => 0.5 },
246
+ });
247
+ expect(decision).toMatchObject({ action: "reconnect", delayMs: 2000 });
248
+ });
249
+
250
+ it("gives clocked callers the steady 5-10s draining cadence instead of the ladder", () => {
251
+ const decision = decideReconnect({
252
+ cause: { type: "refused", code: "node_draining" },
253
+ attempt: 2,
254
+ elapsedMs: 10_000,
255
+ options: { jitter: "none", random: () => 0.5 },
256
+ });
257
+ expect(decision).toMatchObject({ action: "reconnect", delayMs: 7500 });
258
+ });
259
+
260
+ it("keeps the duplicate_identity floor THROUGH the past-ladder pin", () => {
261
+ // Attempt 12 of a long outage, jitter landing low: without the floor the
262
+ // retry races the old session's reap and is refused every time.
263
+ const decision = decideReconnect({
264
+ cause: { type: "refused", code: "duplicate_identity" },
265
+ attempt: 12,
266
+ elapsedMs: 100_000,
267
+ options: { maxAttempts: 10, duplicateIdentityFloorMs: 2_000, random: () => 0.01 },
268
+ });
269
+ expect(decision.action).toBe("reconnect");
270
+ if (decision.action === "reconnect") expect(decision.delayMs).toBeGreaterThanOrEqual(2_000);
271
+ });
272
+ });
@@ -290,3 +290,95 @@ function deepFreeze<T>(value: T): T {
290
290
  }
291
291
  return Object.freeze(value);
292
292
  }
293
+
294
+ describe("the active set's split, levels and enforcement", () => {
295
+ const setFrame = (over: Partial<Extract<EventFrame, { event: "activeSpeakers" }>> = {}): EventFrame => ({
296
+ event: "activeSpeakers",
297
+ producerIds: ["pa", "pb"],
298
+ audio: ["pa"],
299
+ video: ["pb"],
300
+ enforced: true,
301
+ speakers: [{ identity: "a", producerId: "pa", volumeDb: -20 }],
302
+ ...over,
303
+ });
304
+
305
+ it("stores the split, the speakers and the enforcement flag", () => {
306
+ const state = reduceRoomState(afterJoin(), setFrame());
307
+ expect(state.activeAudio).toEqual(["pa"]);
308
+ expect(state.activeVideo).toEqual(["pb"]);
309
+ expect(state.activeSetEnforced).toBe(true);
310
+ expect(state.speakers).toEqual([{ identity: "a", producerId: "pa", volumeDb: -20 }]);
311
+ });
312
+
313
+ it("returns the SAME reference for a value-equal frame, which is what stops 400ms re-renders", () => {
314
+ const first = reduceRoomState(afterJoin(), setFrame());
315
+ const second = reduceRoomState(first, setFrame());
316
+ expect(second).toBe(first);
317
+
318
+ const louder = reduceRoomState(first, setFrame({ speakers: [{ identity: "a", producerId: "pa", volumeDb: -15 }] }));
319
+ expect(louder).not.toBe(first);
320
+ });
321
+
322
+ it("derives the split from producer kinds for an OLD node's frame, unknown ids landing on audio", () => {
323
+ // "pz" is an id no producerAppeared has explained yet. Audio is the side
324
+ // a viewport never narrows, so our ignorance may delay but never suppress.
325
+ const state = reduceRoomState(afterJoin(), { event: "activeSpeakers", producerIds: ["pa", "pb", "pz"] });
326
+ expect(state.activeAudio).toEqual(["pa", "pz"]);
327
+ expect(state.activeVideo).toEqual(["pb"]);
328
+ expect(state.activeSetEnforced).toBe(false);
329
+ });
330
+
331
+ it("prunes every half when a producer's owner leaves", () => {
332
+ const state = reduceRoomState(afterJoin(), setFrame());
333
+ const after = reduceRoomState(state, { event: "peerLeft", identity: "a" });
334
+ expect(after.activeAudio).toEqual([]);
335
+ expect(after.activeVideo).toEqual(["pb"]);
336
+ expect(after.speakers).toEqual([]);
337
+ });
338
+ });
339
+
340
+ describe("raised hands", () => {
341
+ it("arrive in the join snapshot, oldest first", () => {
342
+ const state = afterJoin({ raisedHands: [{ identity: "b", raisedAt: 200 }, { identity: "a", raisedAt: 100 }] });
343
+ expect(state.raisedHands).toEqual([
344
+ { identity: "a", raisedAt: 100 },
345
+ { identity: "b", raisedAt: 200 },
346
+ ]);
347
+ });
348
+
349
+ it("go up and down on handChanged, keeping queue order", () => {
350
+ let state = afterJoin();
351
+ state = reduceRoomState(state, { event: "handChanged", identity: "b", raisedAt: 100 });
352
+ state = reduceRoomState(state, { event: "handChanged", identity: "a", raisedAt: 200 });
353
+ expect(state.raisedHands.map((h) => h.identity)).toEqual(["b", "a"]);
354
+
355
+ const lowered = reduceRoomState(state, { event: "handChanged", identity: "b", raisedAt: null });
356
+ expect(lowered.raisedHands.map((h) => h.identity)).toEqual(["a"]);
357
+ // Lowering a hand that is not up changes nothing, by reference.
358
+ expect(reduceRoomState(lowered, { event: "handChanged", identity: "b", raisedAt: null })).toBe(lowered);
359
+ });
360
+
361
+ it("fall with their owner on peerLeft, and wholesale on a rejoin", () => {
362
+ let state = afterJoin();
363
+ state = reduceRoomState(state, { event: "handChanged", identity: "a", raisedAt: 100 });
364
+ expect(reduceRoomState(state, { event: "peerLeft", identity: "a" }).raisedHands).toEqual([]);
365
+
366
+ // The reconnect snapshot is the truth; a hand lowered while we were away
367
+ // must not survive it.
368
+ expect(reduceRoomState(state, joined()).raisedHands).toEqual([]);
369
+ });
370
+ });
371
+
372
+ describe("broadcast frames", () => {
373
+ it("leave the state untouched, by reference: a reaction is an event, not state", () => {
374
+ const state = afterJoin();
375
+ const after = reduceRoomState(state, {
376
+ event: "broadcast",
377
+ type: "reaction",
378
+ identity: "a",
379
+ data: { emoji: "clap" },
380
+ at: 1,
381
+ });
382
+ expect(after).toBe(state);
383
+ });
384
+ });
package/src/core/index.ts CHANGED
@@ -44,7 +44,9 @@ export {
44
44
  reduceRoomStateAll,
45
45
  visibleProducers,
46
46
  type ProducerEntry,
47
+ type RaisedHand,
47
48
  type RoomState,
49
+ type SpeakerInfo,
48
50
  } from "./state";
49
51
 
50
52
  export {
@@ -36,6 +36,23 @@ export type ReconnectOptions = {
36
36
  * refusal.
37
37
  */
38
38
  duplicateIdentityFloorMs: number;
39
+ /**
40
+ * A `node_draining` refusal is a KNOWN-DEPLOY state, not an error: on a
41
+ * single-node deployment the only node refuses joins for the whole
42
+ * drain-and-restart. The old 500ms floor burned the attempt ladder in
43
+ * about a minute against a node that was always going to come back. A 5s
44
+ * cadence is polite to the node and patient enough to outlast it.
45
+ */
46
+ drainingRefusalFloorMs: number;
47
+ /**
48
+ * The TIME ceiling on a recovery, used only when the caller supplies
49
+ * `elapsedMs`. `maxAttempts` alone gives up in ~75s worst case, which is
50
+ * shorter than an ordinary container restart; a caller with a clock keeps
51
+ * retrying at the `maxMs` cadence until this much time has passed since the
52
+ * outage began. Five minutes covers a compose pull and restart with margin
53
+ * without spinning all afternoon against a dead deployment.
54
+ */
55
+ totalBudgetMs: number;
39
56
  random: () => number;
40
57
  };
41
58
 
@@ -46,6 +63,8 @@ export const DEFAULT_RECONNECT_OPTIONS: ReconnectOptions = {
46
63
  jitter: "full",
47
64
  maxAttempts: 10,
48
65
  duplicateIdentityFloorMs: 2_000,
66
+ drainingRefusalFloorMs: 5_000,
67
+ totalBudgetMs: 300_000,
49
68
  random: Math.random,
50
69
  };
51
70
 
@@ -147,10 +166,22 @@ export function decideReconnect(input: {
147
166
  cause: DisconnectCause;
148
167
  /** Consecutive failed attempts since the last successful join. 0 on the first drop. */
149
168
  attempt: number;
169
+ /**
170
+ * Milliseconds since this OUTAGE began (the first failure after a connected
171
+ * period). Optional, and the option is the compatibility line: absent, the
172
+ * decision is exactly the historical attempts-only policy, which is what
173
+ * `superviseConnection`'s headless callers keep. Present, the policy
174
+ * becomes time-based: past `maxAttempts` the delay pins to the `maxMs`
175
+ * cadence instead of stopping, and the stop is `totalBudgetMs` of elapsed
176
+ * time. A count gives up in ~75s worst case; a container restart takes
177
+ * longer than that, and "Connection lost" over a node that is about to
178
+ * come back is the bug this exists for.
179
+ */
180
+ elapsedMs?: number;
150
181
  options?: Partial<ReconnectOptions>;
151
182
  }): ReconnectDecision {
152
183
  const o = { ...DEFAULT_RECONNECT_OPTIONS, ...input.options };
153
- const { cause, attempt } = input;
184
+ const { cause, attempt, elapsedMs } = input;
154
185
 
155
186
  if (cause.type === "closed_by_client") return { action: "stop", reason: "client_closed" };
156
187
  if (cause.type === "room_closed") return { action: "stop", reason: "room_closed" };
@@ -164,17 +195,42 @@ export function decideReconnect(input: {
164
195
  }
165
196
  }
166
197
 
167
- if (attempt >= o.maxAttempts) return { action: "stop", reason: "attempts_exhausted" };
198
+ // `maxAttempts: 0` is the documented FAILURE-recovery off switch and stays
199
+ // absolute here: a caller that declined automatic retries gets none, budget
200
+ // or no budget. (A planned drain move never consults this function, which
201
+ // is why a deploy still relocates such a room; see `MediaRoomOptions`.)
202
+ if (o.maxAttempts === 0) return { action: "stop", reason: "attempts_exhausted" };
168
203
 
169
- return {
170
- action: "reconnect",
171
- attempt,
172
- delayMs: delayFor(cause, attempt, o),
173
- viaMediaUrl: true,
174
- };
204
+ if (elapsedMs === undefined) {
205
+ if (attempt >= o.maxAttempts) return { action: "stop", reason: "attempts_exhausted" };
206
+ } else if (elapsedMs >= o.totalBudgetMs) {
207
+ // Same reason name on purpose: every consumer switches on the reason, and
208
+ // "the budget ran out" is the same answer to a user as "we gave up".
209
+ return { action: "stop", reason: "attempts_exhausted" };
210
+ }
211
+
212
+ const pastLadder = elapsedMs !== undefined && attempt >= o.maxAttempts;
213
+ // Past the ladder the delay pins to a jittered maxMs cadence: steady,
214
+ // decorrelated probes for the rest of the budget rather than an ever-flat
215
+ // ceiling being recomputed through the exponential. Two causes keep their
216
+ // own floors THROUGH the pin, because each floor exists to outwait a
217
+ // server-side state that does not care what attempt number this is:
218
+ // `node_draining` keeps its whole cadence, and `duplicate_identity` keeps
219
+ // its reap-window floor under the jitter (a sub-floor retry races the
220
+ // ghost reap and is refused every time).
221
+ let delayMs: number;
222
+ if (!pastLadder || (cause.type === "refused" && cause.code === "node_draining")) {
223
+ delayMs = delayFor(cause, attempt, o, elapsedMs !== undefined);
224
+ } else {
225
+ delayMs = Math.round(o.random() * o.maxMs);
226
+ if (cause.type === "refused" && cause.code === "duplicate_identity") {
227
+ delayMs = Math.max(delayMs, o.duplicateIdentityFloorMs);
228
+ }
229
+ }
230
+ return { action: "reconnect", attempt, delayMs, viaMediaUrl: true };
175
231
  }
176
232
 
177
- function delayFor(cause: DisconnectCause, attempt: number, o: ReconnectOptions): number {
233
+ function delayFor(cause: DisconnectCause, attempt: number, o: ReconnectOptions, hasClock: boolean): number {
178
234
  const backoff = backoffDelay(attempt, o);
179
235
  if (cause.type === "draining") {
180
236
  // The node named a window; honour it and add the jittered backoff on top so
@@ -182,6 +238,17 @@ function delayFor(cause: DisconnectCause, attempt: number, o: ReconnectOptions):
182
238
  // one burst the instant the window expires.
183
239
  return cause.reconnectAfterMs + backoff;
184
240
  }
241
+ if (cause.type === "refused" && cause.code === "node_draining" && hasClock) {
242
+ // A steady CADENCE, not a floor under the ladder: see
243
+ // `drainingRefusalFloorMs`. The exponential would space probes up to
244
+ // 30s apart against a node that answers in one restart; 5-10s jittered
245
+ // probes are polite to the node and patient enough to outlast it,
246
+ // whatever the attempt count says. Clocked callers only: a caller with
247
+ // no `elapsedMs` (a headless `superviseConnection` loop) keeps the
248
+ // HISTORICAL attempts-only behavior byte for byte, which for this code
249
+ // was `max(backoff, baseMs)` below.
250
+ return o.drainingRefusalFloorMs + Math.round(o.random() * o.drainingRefusalFloorMs);
251
+ }
185
252
  if (cause.type === "refused" && cause.code === "node_draining") {
186
253
  return Math.max(backoff, o.baseMs);
187
254
  }
@@ -348,10 +348,24 @@ export class MediaSignal {
348
348
  this.nextId = 0;
349
349
  }
350
350
 
351
+ /**
352
+ * Every listener checks that its socket is still THE socket. A replaced or
353
+ * abandoned socket keeps emitting for a beat (a queued close event survives
354
+ * `removeEventListener` in some implementations, and the error listener is
355
+ * never removed at all); without the guard, a stale socket's dying close
356
+ * would run `handleClose` over the SUCCESSOR attempt's state and kill a
357
+ * connection that was doing fine. Seen for real on a planned drain move,
358
+ * where the rejoin starts inside the old socket's close handler.
359
+ */
351
360
  private bind(socket: WebSocketLike): void {
352
- socket.addEventListener("message", (event) => this.handleMessage(event.data));
361
+ const isCurrent = () => this.socket === socket;
362
+ socket.addEventListener("message", (event) => {
363
+ if (isCurrent()) this.handleMessage(event.data);
364
+ });
353
365
  socket.addEventListener("error", (event) => this.log("warn", "signal socket error", event.error));
354
- const onClose = (event: { code?: number; reason?: string }) => this.handleClose(event);
366
+ const onClose = (event: { code?: number; reason?: string }) => {
367
+ if (isCurrent()) this.handleClose(event);
368
+ };
355
369
  this.boundClose = onClose;
356
370
  socket.addEventListener("close", onClose);
357
371
  }