@voltkit-rtc/client 0.7.1 → 0.7.2
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 +58 -0
- package/README.md +25 -2
- package/dist/cjs/broadcast.d.ts +21 -2
- package/dist/cjs/broadcast.d.ts.map +1 -1
- package/dist/cjs/broadcast.js +59 -4
- package/dist/cjs/broadcast.js.map +1 -1
- package/dist/cjs/chat.d.ts +2 -0
- package/dist/cjs/chat.d.ts.map +1 -1
- package/dist/cjs/chat.js +27 -6
- package/dist/cjs/chat.js.map +1 -1
- package/dist/cjs/index.d.ts +56 -3
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +197 -58
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/broadcast.d.ts +21 -2
- package/dist/esm/broadcast.d.ts.map +1 -1
- package/dist/esm/broadcast.js +59 -4
- package/dist/esm/broadcast.js.map +1 -1
- package/dist/esm/chat.d.ts +2 -0
- package/dist/esm/chat.d.ts.map +1 -1
- package/dist/esm/chat.js +27 -6
- package/dist/esm/chat.js.map +1 -1
- package/dist/esm/index.d.ts +56 -3
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +197 -58
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
- package/src/broadcast.ts +52 -4
- package/src/chat.ts +28 -6
- package/src/index.ts +201 -53
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,63 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.7.2
|
|
4
|
+
|
|
5
|
+
Bug fixes found by checking this SDK for the bug classes a frontend tester
|
|
6
|
+
reported in the Flutter SDK (2026-10-18, VK-01…VK-18).
|
|
7
|
+
|
|
8
|
+
- **BR-01: `BroadcastPublisher.stop()` wins over a `start()` under way.**
|
|
9
|
+
Stopping while `start()` waited for the camera, or for the media server's
|
|
10
|
+
answer, did not stop it: the start went on air afterwards, a late answer
|
|
11
|
+
turned the state to `failed` after `stopped` and left the server's session
|
|
12
|
+
open, and a start finishing after a restart replaced the new broadcast. Two
|
|
13
|
+
`start()` calls at once both went on air. Now the interrupted `start()`
|
|
14
|
+
rejects with an `AbortError`, a camera it captured afterwards is released,
|
|
15
|
+
a WHIP session the server opened for it is deleted, and a newer broadcast is
|
|
16
|
+
never touched. A second `start()` while one is under way is refused.
|
|
17
|
+
- **BR-02: `stopMusic()` stops a `publishMusic()` still under way.** Called
|
|
18
|
+
while the music's producer was being made, `stopMusic()` returned with
|
|
19
|
+
nothing to stop, and the music went out afterwards. A second
|
|
20
|
+
`publishMusic()` while one was under way could leave two music producers,
|
|
21
|
+
the first no longer tracked. Now the call under way rejects with
|
|
22
|
+
`unpublished` and its producer is closed here and at the server, and music
|
|
23
|
+
publishes run one at a time, in call order.
|
|
24
|
+
- **BR-03: every way a session ends releases local media.** A session ended
|
|
25
|
+
by another connection for the same identity (`closed: replaced`), by the
|
|
26
|
+
server closing the socket without `roomClosed`, or by a reconnect that gave
|
|
27
|
+
up (`closed: gave-up`) reported `closed` with the camera, microphone, screen
|
|
28
|
+
share and music still capturing, and a recording still uploading, until the
|
|
29
|
+
app called `close()`. Now they are released as the session closes, as
|
|
30
|
+
`kicked` and `roomClosed` always did.
|
|
31
|
+
- **BR-04: a late `updateToken()` never replaces a newer token.** When a
|
|
32
|
+
promotion's token arrived while `updateToken()` waited for its answer, the
|
|
33
|
+
promotion closed the socket, the waiting call fell back to keeping its own
|
|
34
|
+
token, and the reconnect joined with that older token instead of the
|
|
35
|
+
promotion's. The server's own refresh arriving meanwhile, and two calls
|
|
36
|
+
answered in reverse order, lost the newer token the same way. Now a token
|
|
37
|
+
the server hands over, or a later call's, wins, and the waiting call resolves
|
|
38
|
+
to the expiry of the token held. A refused newer call still leaves an
|
|
39
|
+
accepted earlier one in place.
|
|
40
|
+
- **BR-05: a video that fails to subscribe frees its slot for the next.** At
|
|
41
|
+
the fan-out limit (`maxVideoSubscriptions`), a subscription that failed gave
|
|
42
|
+
its slot back but left the videos waiting for one where they were, until
|
|
43
|
+
another video ended or the session reconnected. Now the oldest waiting video
|
|
44
|
+
takes the slot, after repeated failures too; nothing is started while the
|
|
45
|
+
connection is down (the reconnect lists every video again).
|
|
46
|
+
- **BR-06: a video that ends while its subscription is being set up leaves
|
|
47
|
+
nothing behind.** Its consumer, made after it ended, stayed open and kept a
|
|
48
|
+
fan-out slot for the rest of the session, and a `track` could be emitted for
|
|
49
|
+
it after it had ended. Now that consumer is closed, no `track` is emitted,
|
|
50
|
+
its slot goes to the next waiting video, and no error is reported. Two
|
|
51
|
+
announcements of the same video no longer start two subscriptions.
|
|
52
|
+
- **BR-07: a replaced connection fails what waited on it at once.** Calling
|
|
53
|
+
`connect()` on a live session opened a new socket and left the requests sent
|
|
54
|
+
on the old one waiting 15 s for replies that could never be read, then
|
|
55
|
+
failing with `timeout`. An earlier `connect()` still under way could, as it
|
|
56
|
+
failed, close the newer connection (two `connect()` calls before the first
|
|
57
|
+
socket opened both failed). Now those requests fail at once with
|
|
58
|
+
`not-connected` and are never resent, and a failing older `connect()`
|
|
59
|
+
leaves the newer one alone. The same for `ChatClient`.
|
|
60
|
+
|
|
3
61
|
## 0.7.1
|
|
4
62
|
|
|
5
63
|
Bug fixes. No API changes; nothing to change in your code. An external review
|
package/README.md
CHANGED
|
@@ -240,7 +240,7 @@ codes:
|
|
|
240
240
|
- **Fan-out:** a session billed from the wallet receives at most
|
|
241
241
|
`maxVideoSubscriptions` videos at once (25 by default). Further videos wait,
|
|
242
242
|
with one `video-subscription-limit` warning each, and are received as others
|
|
243
|
-
end.
|
|
243
|
+
end, fail to subscribe, or end while their subscription is being set up.
|
|
244
244
|
|
|
245
245
|
With an older server (no `media` in the join result) the `videoPolicy` alone
|
|
246
246
|
applies, as in 0.6.
|
|
@@ -389,6 +389,11 @@ await client.stopMusic();
|
|
|
389
389
|
`client.musicPublishing` is whether music is published at all, and
|
|
390
390
|
`client.musicEnabled` whether the audience hears it now.
|
|
391
391
|
|
|
392
|
+
`stopMusic()` also stops a `publishMusic()` that is still under way: that call
|
|
393
|
+
rejects with `unpublished` and nothing goes out. Calls to `publishMusic()` take
|
|
394
|
+
effect in the order they are made: a newer one replaces music still being
|
|
395
|
+
published, and the replaced call rejects with `unpublished`.
|
|
396
|
+
|
|
392
397
|
Music is HD and free: it always goes out at 128 kbps stereo, also in a project
|
|
393
398
|
limited to standard audio, and the service never bills it. Sending or hearing
|
|
394
399
|
music never changes anyone's rate; the microphone and video alone decide it.
|
|
@@ -447,7 +452,7 @@ await client.getRoomState();
|
|
|
447
452
|
| `error` | a failure or recoverable warning such as `frame-rate-fallback`; inspect its code |
|
|
448
453
|
| `usageLimit` | your project ran out of minutes or hit a usage limit; the session ends at `endsAt` unless it is topped up |
|
|
449
454
|
| `videoLimited` | your camera video is held back by this device (`cpu`) or the upload (`bandwidth`), or that cleared (`none`) |
|
|
450
|
-
| `closed` | terminal — `replaced`, `kicked`, `room-closed` or `gave-up`, or `left` when your own `close()` ends the session |
|
|
455
|
+
| `closed` | terminal — `replaced`, `kicked`, `room-closed` or `gave-up`, or `left` when your own `close()` ends the session. Whatever the reason, the camera, microphone, screen share, music and recording are released with it, as `close()` does |
|
|
451
456
|
| `connectionStateChanged` | `{ state, previous }`: `idle` → `connecting` → `connected` ⇄ `reconnecting` → `closed` |
|
|
452
457
|
| `participantUpdated` | someone changed their display metadata (`setMetadata`) |
|
|
453
458
|
| `claimChanged` | a slot was taken, went away, came back, was locked or freed: `{ key, identity, state, reason }` |
|
|
@@ -491,6 +496,11 @@ reconnect. `tokenExpiring` fires only when nobody refreshed the token: the
|
|
|
491
496
|
server stops when the account may no longer be used, and a dropped socket
|
|
492
497
|
cannot receive one.
|
|
493
498
|
|
|
499
|
+
A newer token always wins over an `updateToken` still waiting for its answer:
|
|
500
|
+
one the server hands over meanwhile (its own refresh, or a promotion's, which
|
|
501
|
+
carries the new role) or one from a later `updateToken` call. The waiting call
|
|
502
|
+
then resolves to the expiry of the token now held.
|
|
503
|
+
|
|
494
504
|
### Wallet and usage notices
|
|
495
505
|
|
|
496
506
|
```ts
|
|
@@ -565,6 +575,12 @@ were removed, the account ran out).
|
|
|
565
575
|
this connection lost. Do not reconnect on it: the two would take turns evicting
|
|
566
576
|
each other.
|
|
567
577
|
|
|
578
|
+
You do not need to call `connect()` again yourself. If you do, the newer call
|
|
579
|
+
wins: the older connection is closed, requests still waiting on it fail at
|
|
580
|
+
once with `not-connected` (they are never sent again: the server may already
|
|
581
|
+
have acted on them), and an older `connect()` still under way fails without
|
|
582
|
+
touching the new one. `ChatClient` behaves the same.
|
|
583
|
+
|
|
568
584
|
## Chat
|
|
569
585
|
|
|
570
586
|
Every room has a chat channel of the same name. `StreamClient` carries it on the
|
|
@@ -654,6 +670,13 @@ account is out of minutes — and a retry with the same URL is refused again.
|
|
|
654
670
|
A media server that cannot be reached, does not answer within 15 s, or drops
|
|
655
671
|
the connection while answering is a `WhipError` too, with `status` 0.
|
|
656
672
|
|
|
673
|
+
`stop()` wins over a `start()` still under way, such as one waiting for the
|
|
674
|
+
camera permission or for the media server's answer. That `start()` rejects
|
|
675
|
+
with an `AbortError` (`err.name === 'AbortError'`), nothing goes on air for it,
|
|
676
|
+
a camera it captured afterwards is released, and a session the server opened
|
|
677
|
+
for it is ended. You can call `start()` again straight after `stop()`. A second
|
|
678
|
+
`start()` while one is under way is refused: call `stop()` first.
|
|
679
|
+
|
|
657
680
|
Video is offered as **H.264 only**. The media server repackages H.264 into HLS
|
|
658
681
|
untouched; any other codec makes it transcode every frame. A browser with no
|
|
659
682
|
H.264 encoder still publishes, and `warning` says so.
|
package/dist/cjs/broadcast.d.ts
CHANGED
|
@@ -84,6 +84,16 @@ export declare class BroadcastPublisher {
|
|
|
84
84
|
private micOn;
|
|
85
85
|
private current;
|
|
86
86
|
private readonly listeners;
|
|
87
|
+
/**
|
|
88
|
+
* Bumped by every start() and stop(). A start compares it after each wait:
|
|
89
|
+
* once stop() has run, that start is over, and what it was waiting for
|
|
90
|
+
* (a camera, the media server's answer) arrives to be released, never
|
|
91
|
+
* adopted -- otherwise a stopped broadcast went on air anyway, or tore
|
|
92
|
+
* down the one started after it.
|
|
93
|
+
*/
|
|
94
|
+
private operation;
|
|
95
|
+
/** The start() under way, by its operation; a second one is refused meanwhile. */
|
|
96
|
+
private starting;
|
|
87
97
|
constructor(whipUrl: string);
|
|
88
98
|
get state(): BroadcastState;
|
|
89
99
|
/** What is being published, for a local preview. */
|
|
@@ -91,7 +101,12 @@ export declare class BroadcastPublisher {
|
|
|
91
101
|
on<K extends keyof BroadcastEvents>(event: K, fn: BroadcastEvents[K]): () => void;
|
|
92
102
|
private emit;
|
|
93
103
|
private set;
|
|
94
|
-
/**
|
|
104
|
+
/**
|
|
105
|
+
* Go on air. Resolves once the media server has accepted the stream.
|
|
106
|
+
* Rejects with an `AbortError` when `stop()` runs first: a camera captured
|
|
107
|
+
* for it afterwards is released, and a session the server opened for it is
|
|
108
|
+
* ended.
|
|
109
|
+
*/
|
|
95
110
|
start(options?: BroadcastStartOptions): Promise<MediaStream>;
|
|
96
111
|
/**
|
|
97
112
|
* Put H.264 first, and offer nothing else for video.
|
|
@@ -123,7 +138,11 @@ export declare class BroadcastPublisher {
|
|
|
123
138
|
get micEnabled(): boolean;
|
|
124
139
|
/** Turn the camera on or off without leaving the air. */
|
|
125
140
|
setCamEnabled(enabled: boolean): void;
|
|
126
|
-
/**
|
|
141
|
+
/**
|
|
142
|
+
* Go off air and release the camera and microphone. Idempotent. A start()
|
|
143
|
+
* still under way is over: it rejects with an `AbortError`, and you can
|
|
144
|
+
* start again at once.
|
|
145
|
+
*/
|
|
127
146
|
stop(): Promise<void>;
|
|
128
147
|
private teardown;
|
|
129
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/broadcast.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAc,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE5E,yDAAyD;AACzD,qBAAa,SAAU,SAAQ,KAAK;IAItB,QAAQ,CAAC,MAAM,EAAE,MAAM;IAHnC;;OAEG;gBACkB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAKpD;;;;OAIG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;CACF;AAED,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,YAAY;AACd,4CAA4C;GAC1C,MAAM;AACR,0FAA0F;GACxF,aAAa,GACb,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IACvC;;;OAGG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,gFAAgF;IAChF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,wEAAwE;IACxE,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,yFAAyF;IACzF,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;
|
|
1
|
+
{"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/broadcast.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAc,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAE5E,yDAAyD;AACzD,qBAAa,SAAU,SAAQ,KAAK;IAItB,QAAQ,CAAC,MAAM,EAAE,MAAM;IAHnC;;OAEG;gBACkB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAKpD;;;;OAIG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;CACF;AAED,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,YAAY;AACd,4CAA4C;GAC1C,MAAM;AACR,0FAA0F;GACxF,aAAa,GACb,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IACvC;;;OAGG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,gFAAgF;IAChF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,wEAAwE;IACxE,WAAW,CAAC,EAAE,sBAAsB,CAAC;IACrC,yFAAyF;IACzF,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAaD;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,SAAkB,GAC1B,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAiCzD;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO7D;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,kBAAkB;IAuBjB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAtBpC,OAAO,CAAC,EAAE,CAAkC;IAC5C,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,QAAQ,CAAiC;IACjD,uGAAuG;IACvG,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmC;IAC7D;;;;;;OAMG;IACH,OAAO,CAAC,SAAS,CAAK;IACtB,kFAAkF;IAClF,OAAO,CAAC,QAAQ,CAAuB;gBAEV,OAAO,EAAE,MAAM;IAE5C,IAAI,KAAK,IAAI,cAAc,CAE1B;IAED,oDAAoD;IACpD,IAAI,WAAW,IAAI,WAAW,GAAG,IAAI,CAEpC;IAED,EAAE,CAAC,CAAC,SAAS,MAAM,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAUjF,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,GAAG;IAMX;;;;;OAKG;IACG,KAAK,CAAC,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,WAAW,CAAC;IA2EtE;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU;IAelB,kFAAkF;IAClF,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAMrC;;;;;;;OAOG;IACG,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAYxE,gFAAgF;IAChF,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIvC,gCAAgC;IAChC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpC,yDAAyD;IACzD,UAAU,IAAI,IAAI;IAIlB,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,yDAAyD;IACzD,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIrC;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B,OAAO,CAAC,QAAQ;CAajB"}
|
package/dist/cjs/broadcast.js
CHANGED
|
@@ -38,6 +38,8 @@ const WHIP_TIMEOUT_MS = 15_000;
|
|
|
38
38
|
const ICE_GATHER_TIMEOUT_MS = 3_000;
|
|
39
39
|
/** Helper formats that ride along with a codec. Not codecs in their own right. */
|
|
40
40
|
const HELPER_FORMATS = new Set(['video/rtx', 'video/red', 'video/ulpfec', 'video/flexfec-03']);
|
|
41
|
+
/** Why a start() gave up: stop() ran while it was under way, and stop wins. */
|
|
42
|
+
const stoppedWhileStarting = () => new DOMException('the broadcast was stopped while it was starting', 'AbortError');
|
|
41
43
|
/**
|
|
42
44
|
* Send an SDP offer to a WHIP endpoint and return the answer, plus the session
|
|
43
45
|
* resource the server names for ending it.
|
|
@@ -118,6 +120,16 @@ class BroadcastPublisher {
|
|
|
118
120
|
micOn = true;
|
|
119
121
|
current = 'idle';
|
|
120
122
|
listeners = new Map();
|
|
123
|
+
/**
|
|
124
|
+
* Bumped by every start() and stop(). A start compares it after each wait:
|
|
125
|
+
* once stop() has run, that start is over, and what it was waiting for
|
|
126
|
+
* (a camera, the media server's answer) arrives to be released, never
|
|
127
|
+
* adopted -- otherwise a stopped broadcast went on air anyway, or tore
|
|
128
|
+
* down the one started after it.
|
|
129
|
+
*/
|
|
130
|
+
operation = 0;
|
|
131
|
+
/** The start() under way, by its operation; a second one is refused meanwhile. */
|
|
132
|
+
starting = null;
|
|
121
133
|
constructor(whipUrl) {
|
|
122
134
|
this.whipUrl = whipUrl;
|
|
123
135
|
}
|
|
@@ -153,14 +165,27 @@ class BroadcastPublisher {
|
|
|
153
165
|
this.current = state;
|
|
154
166
|
this.emit('state', state);
|
|
155
167
|
}
|
|
156
|
-
/**
|
|
168
|
+
/**
|
|
169
|
+
* Go on air. Resolves once the media server has accepted the stream.
|
|
170
|
+
* Rejects with an `AbortError` when `stop()` runs first: a camera captured
|
|
171
|
+
* for it afterwards is released, and a session the server opened for it is
|
|
172
|
+
* ended.
|
|
173
|
+
*/
|
|
157
174
|
async start(options = {}) {
|
|
158
|
-
if (this.pc)
|
|
175
|
+
if (this.pc || this.starting !== null)
|
|
159
176
|
throw new Error('already publishing; call stop() first');
|
|
177
|
+
const operation = ++this.operation;
|
|
178
|
+
this.starting = operation;
|
|
179
|
+
const stopped = () => operation !== this.operation;
|
|
180
|
+
const owns = !options.stream;
|
|
181
|
+
let captured = null;
|
|
160
182
|
this.set('connecting');
|
|
161
183
|
try {
|
|
162
|
-
this.ownsMedia = !options.stream;
|
|
163
184
|
const media = options.stream ?? await navigator.mediaDevices.getUserMedia(options.constraints ?? { audio: true, video: { width: 1280, height: 720 } });
|
|
185
|
+
captured = media;
|
|
186
|
+
if (stopped())
|
|
187
|
+
throw stoppedWhileStarting();
|
|
188
|
+
this.ownsMedia = owns;
|
|
164
189
|
this.media = media;
|
|
165
190
|
const pc = new RTCPeerConnection();
|
|
166
191
|
this.pc = pc;
|
|
@@ -191,19 +216,43 @@ class BroadcastPublisher {
|
|
|
191
216
|
this.audioSender = transceiver.sender;
|
|
192
217
|
await pc.setLocalDescription(await pc.createOffer());
|
|
193
218
|
await iceGathered(pc);
|
|
219
|
+
if (stopped())
|
|
220
|
+
throw stoppedWhileStarting();
|
|
194
221
|
const offerSdp = pc.localDescription?.sdp;
|
|
195
222
|
if (!offerSdp)
|
|
196
223
|
throw new WhipError(0, 'could not create an offer in this browser');
|
|
197
224
|
const answer = await whipOffer(this.whipUrl, offerSdp);
|
|
225
|
+
if (stopped()) {
|
|
226
|
+
// The server opened a session for a start that is over: end it, as
|
|
227
|
+
// stop() would have, had it known of it.
|
|
228
|
+
if (answer.resource)
|
|
229
|
+
void whipEnd(answer.resource);
|
|
230
|
+
throw stoppedWhileStarting();
|
|
231
|
+
}
|
|
198
232
|
this.resource = answer.resource;
|
|
199
233
|
await pc.setRemoteDescription({ type: 'answer', sdp: answer.answerSdp });
|
|
234
|
+
if (stopped())
|
|
235
|
+
throw stoppedWhileStarting();
|
|
200
236
|
return media;
|
|
201
237
|
}
|
|
202
238
|
catch (err) {
|
|
239
|
+
if (stopped()) {
|
|
240
|
+
// stop() released what this start had handed over, and a newer
|
|
241
|
+
// start() may be on air now: only what arrived after stop() is ours
|
|
242
|
+
// to release here.
|
|
243
|
+
if (owns && captured)
|
|
244
|
+
for (const t of captured.getTracks())
|
|
245
|
+
t.stop();
|
|
246
|
+
throw stoppedWhileStarting();
|
|
247
|
+
}
|
|
203
248
|
this.teardown();
|
|
204
249
|
this.set('failed');
|
|
205
250
|
throw err;
|
|
206
251
|
}
|
|
252
|
+
finally {
|
|
253
|
+
if (this.starting === operation)
|
|
254
|
+
this.starting = null;
|
|
255
|
+
}
|
|
207
256
|
}
|
|
208
257
|
/**
|
|
209
258
|
* Put H.264 first, and offer nothing else for video.
|
|
@@ -280,8 +329,14 @@ class BroadcastPublisher {
|
|
|
280
329
|
for (const t of this.media?.getVideoTracks() ?? [])
|
|
281
330
|
t.enabled = enabled;
|
|
282
331
|
}
|
|
283
|
-
/**
|
|
332
|
+
/**
|
|
333
|
+
* Go off air and release the camera and microphone. Idempotent. A start()
|
|
334
|
+
* still under way is over: it rejects with an `AbortError`, and you can
|
|
335
|
+
* start again at once.
|
|
336
|
+
*/
|
|
284
337
|
async stop() {
|
|
338
|
+
this.operation += 1;
|
|
339
|
+
this.starting = null;
|
|
285
340
|
const resource = this.resource;
|
|
286
341
|
this.teardown();
|
|
287
342
|
if (resource)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../src/broadcast.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../src/broadcast.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/chat.d.ts
CHANGED
|
@@ -120,6 +120,8 @@ export declare class ChatClient {
|
|
|
120
120
|
private scheduleReconnect;
|
|
121
121
|
close(): void;
|
|
122
122
|
private rpc;
|
|
123
|
+
/** Fail what was sent on `ws` and is still waiting. */
|
|
124
|
+
private failPending;
|
|
123
125
|
private failAllPending;
|
|
124
126
|
private onMessage;
|
|
125
127
|
sendMessage(text: string, opts?: SendMessageOptions): Promise<{
|
package/dist/cjs/chat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/chat.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,MAAM,WAAW,WAAW;IAC1B,4EAA4E;IAC5E,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,KAAK,EAAE,OAAO,CAAC;IACf,mCAAmC;IACnC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,8CAA8C;IAC9C,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC;IAClC,cAAc,EAAE,CAAC,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACxD,SAAS,EAAE,CAAC,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACzE,MAAM,EAAE,CAAC,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CAC5D;AAED,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,MAAM,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IACzC,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAC5B,+EAA+E;IAC/E,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC;IACvD,4EAA4E;IAC5E,UAAU,EAAE,CAAC,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACnF;AAED,2EAA2E;AAC3E,qBAAa,YAAa,SAAQ,KAAK;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAInD;
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/chat.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/chat.js
CHANGED
|
@@ -77,8 +77,13 @@ class ChatClient {
|
|
|
77
77
|
async connect() {
|
|
78
78
|
const lifecycle = this.lifecycle;
|
|
79
79
|
let result;
|
|
80
|
+
// The socket this call opens. A later connect() replaces it, and this
|
|
81
|
+
// call's failure must then leave the newer socket alone.
|
|
82
|
+
let socket = null;
|
|
80
83
|
try {
|
|
81
|
-
|
|
84
|
+
const opening = this.openSocket();
|
|
85
|
+
socket = this.ws;
|
|
86
|
+
await opening;
|
|
82
87
|
result = (await this.rpc('join', { token: this.token }));
|
|
83
88
|
if (lifecycle !== this.lifecycle)
|
|
84
89
|
throw new Error('the chat was closed while connecting');
|
|
@@ -87,7 +92,8 @@ class ChatClient {
|
|
|
87
92
|
// Never joined: the app has the error. Left open, the socket would be
|
|
88
93
|
// closed by the server's join deadline, and that would start
|
|
89
94
|
// reconnecting a session that never began.
|
|
90
|
-
|
|
95
|
+
const superseded = this.ws !== null && this.ws !== socket;
|
|
96
|
+
if (!this.joinedOnce && !superseded)
|
|
91
97
|
this.detachSocket();
|
|
92
98
|
throw err;
|
|
93
99
|
}
|
|
@@ -136,10 +142,12 @@ class ChatClient {
|
|
|
136
142
|
});
|
|
137
143
|
});
|
|
138
144
|
}
|
|
139
|
-
detachSocket(reason = 'superseded') {
|
|
145
|
+
detachSocket(reason = 'superseded', why = 'the connection was replaced') {
|
|
140
146
|
const ws = this.ws;
|
|
141
147
|
this.ws = null;
|
|
142
|
-
if (ws
|
|
148
|
+
if (!ws)
|
|
149
|
+
return;
|
|
150
|
+
if (ws.readyState <= WebSocket.OPEN) {
|
|
143
151
|
try {
|
|
144
152
|
ws.close(1000, reason);
|
|
145
153
|
}
|
|
@@ -147,6 +155,9 @@ class ChatClient {
|
|
|
147
155
|
/* already closing */
|
|
148
156
|
}
|
|
149
157
|
}
|
|
158
|
+
// Its replies are no longer read: what waits on it fails now instead of
|
|
159
|
+
// waiting out its timeout. Never replayed.
|
|
160
|
+
this.failPending(ws, new Error(why));
|
|
150
161
|
}
|
|
151
162
|
/**
|
|
152
163
|
* A reconnect that ends the session lets go of its socket: a refused join
|
|
@@ -154,7 +165,7 @@ class ChatClient {
|
|
|
154
165
|
* closed.
|
|
155
166
|
*/
|
|
156
167
|
releaseSocket() {
|
|
157
|
-
this.detachSocket('gave up');
|
|
168
|
+
this.detachSocket('gave up', 'the chat has ended');
|
|
158
169
|
this.failAllPending(new Error('the chat has ended'));
|
|
159
170
|
}
|
|
160
171
|
/** Single-flight, with backoff: the same shape as the room client's. */
|
|
@@ -230,10 +241,20 @@ class ChatClient {
|
|
|
230
241
|
this.pending.delete(id);
|
|
231
242
|
reject(new Error(`${method} timed out`));
|
|
232
243
|
}, RPC_TIMEOUT_MS);
|
|
233
|
-
this.pending.set(id, { resolve, reject, timer });
|
|
244
|
+
this.pending.set(id, { resolve, reject, timer, ws: this.ws });
|
|
234
245
|
this.ws.send(JSON.stringify({ id, method, params }));
|
|
235
246
|
});
|
|
236
247
|
}
|
|
248
|
+
/** Fail what was sent on `ws` and is still waiting. */
|
|
249
|
+
failPending(ws, err) {
|
|
250
|
+
for (const [id, p] of this.pending) {
|
|
251
|
+
if (p.ws !== ws)
|
|
252
|
+
continue;
|
|
253
|
+
clearTimeout(p.timer);
|
|
254
|
+
this.pending.delete(id);
|
|
255
|
+
p.reject(err);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
237
258
|
failAllPending(err) {
|
|
238
259
|
for (const p of this.pending.values()) {
|
|
239
260
|
clearTimeout(p.timer);
|
package/dist/cjs/chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/chat.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/chat.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -320,7 +320,11 @@ export interface ClientEvents extends ChatEvents {
|
|
|
320
320
|
streamInterrupted: (e: {
|
|
321
321
|
reason: string;
|
|
322
322
|
}) => void;
|
|
323
|
-
/**
|
|
323
|
+
/**
|
|
324
|
+
* The session ended and will not recover. Nothing further will be emitted.
|
|
325
|
+
* Whatever the reason, the camera, microphone, screen, music and recording
|
|
326
|
+
* are released with it, as close() does.
|
|
327
|
+
*/
|
|
324
328
|
closed: (reason: ClosedReason) => void;
|
|
325
329
|
/**
|
|
326
330
|
* The account behind this session ran out of minutes or reached a usage
|
|
@@ -384,6 +388,14 @@ export declare class StreamClient {
|
|
|
384
388
|
/** In-app music being published, kept across reconnects so it can be published again. */
|
|
385
389
|
private music;
|
|
386
390
|
private musicProducerId;
|
|
391
|
+
/**
|
|
392
|
+
* Bumped by every publishMusic() and stopMusic(). A music producer still
|
|
393
|
+
* being made when it changes belongs to a publish that is over: it is
|
|
394
|
+
* closed, not kept. publishGeneration alone missed stopMusic(), and the
|
|
395
|
+
* music went out after stopMusic() had returned.
|
|
396
|
+
*/
|
|
397
|
+
private musicOperation;
|
|
398
|
+
private musicQueue;
|
|
387
399
|
private screenStream;
|
|
388
400
|
private screenMode;
|
|
389
401
|
private screenAudioEnabled;
|
|
@@ -400,6 +412,8 @@ export declare class StreamClient {
|
|
|
400
412
|
private frameRateWarmupSamples;
|
|
401
413
|
/** What each remote producer carries, so a pause can say "music" rather than just "audio". */
|
|
402
414
|
private readonly remoteSources;
|
|
415
|
+
/** Identity of each pending/active subscription; cleared on close/reconnect. */
|
|
416
|
+
private readonly subscriptions;
|
|
403
417
|
/**
|
|
404
418
|
* The layers asked for each remote video, by producerId. A reconnect
|
|
405
419
|
* consumes everything again, and the new consumer would otherwise start at
|
|
@@ -432,6 +446,17 @@ export declare class StreamClient {
|
|
|
432
446
|
/** When the token held for reconnects expires (unix ms), and the timer that warns before it does. */
|
|
433
447
|
private tokenExpiry;
|
|
434
448
|
private tokenTimer;
|
|
449
|
+
/**
|
|
450
|
+
* Bumped whenever the server hands this client a token (its own refresh, a
|
|
451
|
+
* promotion's). An updateToken() that started before then keeps the token
|
|
452
|
+
* it was given only if nothing newer arrived while it waited: its reply,
|
|
453
|
+
* or its fallback once the socket closed, used to replace a promotion's
|
|
454
|
+
* token, and the reconnect joined with the old one.
|
|
455
|
+
*/
|
|
456
|
+
private serverTokenRevision;
|
|
457
|
+
/** updateToken() calls in call order, and the newest one whose token is held: a later call wins over an earlier one answered after it. */
|
|
458
|
+
private tokenRequests;
|
|
459
|
+
private tokenRequestHeld;
|
|
435
460
|
/** Whose each received track is and whether it is switched off, by producerId. */
|
|
436
461
|
private readonly remoteInfo;
|
|
437
462
|
/** Videos left unconsumed at the fan-out limit, oldest first; consumed as others end. */
|
|
@@ -451,6 +476,14 @@ export declare class StreamClient {
|
|
|
451
476
|
private setState;
|
|
452
477
|
/** Over for good: the state, then the event that says why. */
|
|
453
478
|
private finish;
|
|
479
|
+
/**
|
|
480
|
+
* Over for good without the app asking: finish, then release everything
|
|
481
|
+
* local as close() does -- camera, microphone, screen, music, recording.
|
|
482
|
+
* kicked and roomClosed always did; a replaced socket, a close without
|
|
483
|
+
* roomClosed and a reconnect that gave up left them capturing (and the
|
|
484
|
+
* recording uploading) after `closed`, until the app called close().
|
|
485
|
+
*/
|
|
486
|
+
private end;
|
|
454
487
|
private stopTimers;
|
|
455
488
|
private listenerCount;
|
|
456
489
|
private emit;
|
|
@@ -503,7 +536,10 @@ export declare class StreamClient {
|
|
|
503
536
|
* `tokenExpiring`. On a live connection the server checks it like a join
|
|
504
537
|
* token (`bad-token`, or `token-mismatch` for another room or identity; the
|
|
505
538
|
* session then keeps its token); otherwise it is kept for the next join,
|
|
506
|
-
* which checks it there. Resolves to when
|
|
539
|
+
* which checks it there. Resolves to when the token now held expires (unix
|
|
540
|
+
* ms), when known. A newer token that arrives while this waits is kept
|
|
541
|
+
* instead of this one: the server's (its own refresh, or a promotion's,
|
|
542
|
+
* which carries the new role) or a later updateToken()'s.
|
|
507
543
|
*/
|
|
508
544
|
updateToken(token: string): Promise<{
|
|
509
545
|
expiresAt: number | null;
|
|
@@ -521,6 +557,8 @@ export declare class StreamClient {
|
|
|
521
557
|
/** Each live media transport's statistics, keyed by transport so a new one starts fresh. */
|
|
522
558
|
private transportStats;
|
|
523
559
|
private rpc;
|
|
560
|
+
/** Fail what was sent on `ws` and is still waiting. */
|
|
561
|
+
private failPending;
|
|
524
562
|
private failAllPending;
|
|
525
563
|
private onMessage;
|
|
526
564
|
private onEvent;
|
|
@@ -728,6 +766,7 @@ export declare class StreamClient {
|
|
|
728
766
|
* the user has not interacted with.
|
|
729
767
|
*/
|
|
730
768
|
publishMusic(input: MusicInput, options?: MusicOptions): Promise<void>;
|
|
769
|
+
private musicTask;
|
|
731
770
|
private produceMusic;
|
|
732
771
|
/** True while music is published, whether or not it is switched on. */
|
|
733
772
|
get musicPublishing(): boolean;
|
|
@@ -736,10 +775,24 @@ export declare class StreamClient {
|
|
|
736
775
|
setMusicVolume(volume: number): void;
|
|
737
776
|
/** Switch the music off or on for the audience. The microphone is untouched. */
|
|
738
777
|
setMusicEnabled(enabled: boolean): Promise<void>;
|
|
739
|
-
/**
|
|
778
|
+
/**
|
|
779
|
+
* Stop publishing music. The element or stream it came from is left as it
|
|
780
|
+
* was. A publishMusic() still under way is stopped too: it rejects with
|
|
781
|
+
* `unpublished` and publishes nothing.
|
|
782
|
+
*/
|
|
740
783
|
stopMusic(): Promise<void>;
|
|
784
|
+
/** Close the music being published, here and at the server. */
|
|
785
|
+
private closeMusic;
|
|
741
786
|
private emitLocalMedia;
|
|
742
787
|
private consume;
|
|
788
|
+
/**
|
|
789
|
+
* Free a video slot, and let the oldest video waiting take it -- whatever
|
|
790
|
+
* freed it: an ended video, or a subscription that failed. Not while
|
|
791
|
+
* reconnecting: a failure caused by the socket dropping would otherwise
|
|
792
|
+
* start every waiting video on a dead connection, each failing with
|
|
793
|
+
* not-connected; the reconnect's join lists them all again anyway.
|
|
794
|
+
*/
|
|
795
|
+
private releaseVideoSlot;
|
|
743
796
|
/** The oldest videos left waiting at the fan-out limit take the slots that opened. */
|
|
744
797
|
private consumeSkipped;
|
|
745
798
|
private consumeNow;
|