livekit-client 2.20.2 → 2.21.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/dist/livekit-client.e2ee.worker.js +1 -1
- package/dist/livekit-client.e2ee.worker.js.map +1 -1
- package/dist/livekit-client.e2ee.worker.mjs +4 -0
- package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
- package/dist/livekit-client.esm.mjs +1993 -791
- package/dist/livekit-client.esm.mjs.map +1 -1
- package/dist/livekit-client.fm.worker.js +1 -1
- package/dist/livekit-client.fm.worker.js.map +1 -1
- package/dist/livekit-client.fm.worker.mjs +4 -0
- package/dist/livekit-client.fm.worker.mjs.map +1 -1
- package/dist/livekit-client.umd.js +1 -1
- package/dist/livekit-client.umd.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/room/RTCEngine.d.ts +28 -64
- package/dist/src/room/RTCEngine.d.ts.map +1 -1
- package/dist/src/room/Room.d.ts +4 -0
- package/dist/src/room/Room.d.ts.map +1 -1
- package/dist/src/room/data-channel/DataChannelManager.d.ts +62 -0
- package/dist/src/room/data-channel/DataChannelManager.d.ts.map +1 -0
- package/dist/src/room/data-channel/FlowControlledDataChannel.d.ts +95 -0
- package/dist/src/room/data-channel/FlowControlledDataChannel.d.ts.map +1 -0
- package/dist/src/room/data-channel/LossyDataChannel.d.ts +40 -0
- package/dist/src/room/data-channel/LossyDataChannel.d.ts.map +1 -0
- package/dist/src/room/data-channel/ReliableDataChannel.d.ts +56 -0
- package/dist/src/room/data-channel/ReliableDataChannel.d.ts.map +1 -0
- package/dist/src/room/data-channel/types.d.ts +12 -0
- package/dist/src/room/data-channel/types.d.ts.map +1 -0
- package/dist/src/room/data-stream/compression.d.ts +49 -0
- package/dist/src/room/data-stream/compression.d.ts.map +1 -0
- package/dist/src/room/data-stream/constants.d.ts +18 -0
- package/dist/src/room/data-stream/constants.d.ts.map +1 -0
- package/dist/src/room/data-stream/incoming/IncomingDataStreamManager.d.ts +4 -0
- package/dist/src/room/data-stream/incoming/IncomingDataStreamManager.d.ts.map +1 -1
- package/dist/src/room/data-stream/incoming/StreamReader.d.ts.map +1 -1
- package/dist/src/room/data-stream/outgoing/OutgoingDataStreamManager.d.ts +49 -2
- package/dist/src/room/data-stream/outgoing/OutgoingDataStreamManager.d.ts.map +1 -1
- package/dist/src/room/data-stream/outgoing/header-utils.d.ts +18 -0
- package/dist/src/room/data-stream/outgoing/header-utils.d.ts.map +1 -0
- package/dist/src/room/errors.d.ts +3 -1
- package/dist/src/room/errors.d.ts.map +1 -1
- package/dist/src/room/participant/LocalParticipant.d.ts +9 -1
- package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
- package/dist/src/room/participant/RemoteParticipant.d.ts +11 -2
- package/dist/src/room/participant/RemoteParticipant.d.ts.map +1 -1
- package/dist/src/room/rpc/client/RpcClientManager.d.ts.map +1 -1
- package/dist/src/room/rpc/server/RpcServerManager.d.ts.map +1 -1
- package/dist/src/room/types.d.ts +17 -0
- package/dist/src/room/types.d.ts.map +1 -1
- package/dist/src/room/utils.d.ts +13 -0
- package/dist/src/room/utils.d.ts.map +1 -1
- package/dist/src/version.d.ts +5 -1
- package/dist/src/version.d.ts.map +1 -1
- package/dist/ts4.2/index.d.ts +1 -1
- package/dist/ts4.2/room/RTCEngine.d.ts +28 -64
- package/dist/ts4.2/room/Room.d.ts +4 -0
- package/dist/ts4.2/room/data-channel/DataChannelManager.d.ts +62 -0
- package/dist/ts4.2/room/data-channel/FlowControlledDataChannel.d.ts +95 -0
- package/dist/ts4.2/room/data-channel/LossyDataChannel.d.ts +41 -0
- package/dist/ts4.2/room/data-channel/ReliableDataChannel.d.ts +57 -0
- package/dist/ts4.2/room/data-channel/types.d.ts +12 -0
- package/dist/ts4.2/room/data-stream/compression.d.ts +49 -0
- package/dist/ts4.2/room/data-stream/constants.d.ts +18 -0
- package/dist/ts4.2/room/data-stream/incoming/IncomingDataStreamManager.d.ts +4 -0
- package/dist/ts4.2/room/data-stream/outgoing/OutgoingDataStreamManager.d.ts +49 -2
- package/dist/ts4.2/room/data-stream/outgoing/header-utils.d.ts +18 -0
- package/dist/ts4.2/room/errors.d.ts +3 -1
- package/dist/ts4.2/room/participant/LocalParticipant.d.ts +9 -1
- package/dist/ts4.2/room/participant/RemoteParticipant.d.ts +11 -1
- package/dist/ts4.2/room/types.d.ts +17 -0
- package/dist/ts4.2/room/utils.d.ts +13 -0
- package/dist/ts4.2/version.d.ts +5 -1
- package/package.json +2 -2
- package/src/index.ts +2 -0
- package/src/room/RTCEngine.test.ts +58 -99
- package/src/room/RTCEngine.ts +92 -534
- package/src/room/Room.test.ts +4 -1
- package/src/room/Room.ts +40 -8
- package/src/room/data-channel/DataChannelManager.test.ts +152 -0
- package/src/room/data-channel/DataChannelManager.ts +237 -0
- package/src/room/data-channel/FlowControlledDataChannel.test.ts +154 -0
- package/src/room/data-channel/FlowControlledDataChannel.ts +216 -0
- package/src/room/data-channel/LossyDataChannel.test.ts +118 -0
- package/src/room/data-channel/LossyDataChannel.ts +125 -0
- package/src/room/data-channel/ReliableDataChannel.test.ts +158 -0
- package/src/room/data-channel/ReliableDataChannel.ts +153 -0
- package/src/room/data-channel/types.ts +30 -0
- package/src/room/data-stream/compression.ts +117 -0
- package/src/room/data-stream/constants.ts +18 -0
- package/src/room/data-stream/incoming/IncomingDataStreamManager.test.ts +1601 -0
- package/src/room/data-stream/incoming/IncomingDataStreamManager.ts +438 -86
- package/src/room/data-stream/incoming/StreamReader.ts +8 -2
- package/src/room/data-stream/outgoing/OutgoingDataStreamManager.test.ts +1292 -0
- package/src/room/data-stream/outgoing/OutgoingDataStreamManager.ts +489 -116
- package/src/room/data-stream/outgoing/header-utils.ts +87 -0
- package/src/room/errors.ts +6 -0
- package/src/room/participant/LocalParticipant.ts +13 -0
- package/src/room/participant/RemoteParticipant.ts +19 -5
- package/src/room/rpc/client/RpcClientManager.test.ts +20 -27
- package/src/room/rpc/client/RpcClientManager.ts +1 -4
- package/src/room/rpc/server/RpcServerManager.test.ts +24 -23
- package/src/room/rpc/server/RpcServerManager.ts +1 -3
- package/src/room/types.ts +18 -0
- package/src/room/utils.ts +67 -0
- package/src/version.ts +5 -1
package/dist/src/index.d.ts
CHANGED
|
@@ -56,7 +56,7 @@ export * from './room/track/processor/types';
|
|
|
56
56
|
export * from './room/track/types';
|
|
57
57
|
export type * from './room/data-stream/incoming/StreamReader';
|
|
58
58
|
export type * from './room/data-stream/outgoing/StreamWriter';
|
|
59
|
-
export type { DataPublishOptions, SimulationScenario, TranscriptionSegment, ChatMessage, SendTextOptions, } from './room/types';
|
|
59
|
+
export type { DataPublishOptions, SimulationScenario, TranscriptionSegment, ChatMessage, SendTextOptions, SendBytesOptions, ByteStreamInfo, } from './room/types';
|
|
60
60
|
export * from './version';
|
|
61
61
|
export {
|
|
62
62
|
/** @internal */
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import type { InternalRoomOptions } from '../options';
|
|
|
7
7
|
import type { NonSharedUint8Array } from '../type-polyfills/non-shared-typed-arrays';
|
|
8
8
|
import PCTransport from './PCTransport';
|
|
9
9
|
import { PCTransportManager } from './PCTransportManager';
|
|
10
|
+
import { DataChannelKind } from './data-channel/types';
|
|
10
11
|
import { DataTrackInfo } from './data-track/types';
|
|
11
12
|
import type LocalTrack from './track/LocalTrack';
|
|
12
13
|
import type LocalTrackPublication from './track/LocalTrackPublication';
|
|
@@ -15,11 +16,7 @@ import type { SimulcastTrackInfo } from './track/LocalVideoTrack';
|
|
|
15
16
|
import type RemoteTrackPublication from './track/RemoteTrackPublication';
|
|
16
17
|
import type { Track } from './track/Track';
|
|
17
18
|
import type { TrackPublishOptions, VideoCodec } from './track/options';
|
|
18
|
-
export
|
|
19
|
-
RELIABLE = 0,
|
|
20
|
-
LOSSY = 1,
|
|
21
|
-
DATA_TRACK_LOSSY = 2
|
|
22
|
-
}
|
|
19
|
+
export { DataChannelKind };
|
|
23
20
|
declare const RTCEngine_base: new () => TypedEventEmitter<EngineEventCallbacks>;
|
|
24
21
|
/** @internal */
|
|
25
22
|
export default class RTCEngine extends RTCEngine_base {
|
|
@@ -42,13 +39,15 @@ export default class RTCEngine extends RTCEngine_base {
|
|
|
42
39
|
get isClosed(): boolean;
|
|
43
40
|
get isNewlyCreated(): boolean;
|
|
44
41
|
get pendingReconnect(): boolean;
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
private
|
|
51
|
-
private
|
|
42
|
+
/**
|
|
43
|
+
* Owns the data channels: the three flow-controlled publisher wrappers (engine-lifetime; the
|
|
44
|
+
* RTCDataChannel handles underneath are attached/detached as peer connections come and go, with
|
|
45
|
+
* waiter invalidation built into the turnover) plus the subscriber-side receive handles.
|
|
46
|
+
*/
|
|
47
|
+
private dataChannels;
|
|
48
|
+
private get reliableChannel();
|
|
49
|
+
private get lossyChannel();
|
|
50
|
+
private get dataTrackChannel();
|
|
52
51
|
private subscriberPrimary;
|
|
53
52
|
private pcState;
|
|
54
53
|
private _isClosed;
|
|
@@ -76,13 +75,7 @@ export default class RTCEngine extends RTCEngine_base {
|
|
|
76
75
|
private log;
|
|
77
76
|
private loggerOptions;
|
|
78
77
|
private publisherConnectionPromise;
|
|
79
|
-
private reliableDataSequence;
|
|
80
|
-
private reliableMessageBuffer;
|
|
81
78
|
private reliableReceivedState;
|
|
82
|
-
private lossyDataStatCurrentBytes;
|
|
83
|
-
private lossyDataStatByterate;
|
|
84
|
-
private lossyDataStatInterval;
|
|
85
|
-
private lossyDataDropCount;
|
|
86
79
|
private midToTrackId;
|
|
87
80
|
/** used to indicate whether the browser is currently waiting to reconnect */
|
|
88
81
|
private isWaitingForNetworkReconnect;
|
|
@@ -129,11 +122,12 @@ export default class RTCEngine extends RTCEngine_base {
|
|
|
129
122
|
private addMediaSections;
|
|
130
123
|
private createDataChannels;
|
|
131
124
|
private handleDataChannel;
|
|
125
|
+
/** Normalizes an incoming data-channel message into bytes, or logs and returns undefined. */
|
|
126
|
+
private decodeDataMessage;
|
|
132
127
|
private handleDataMessage;
|
|
133
128
|
private handleDataTrackMessage;
|
|
134
129
|
private handleDataError;
|
|
135
130
|
private handleDataChannelClose;
|
|
136
|
-
private handleBufferedAmountLow;
|
|
137
131
|
createSender(track: LocalTrack, opts: TrackPublishOptions, encodings?: RTCRtpEncodingParameters[]): Promise<RTCRtpSender>;
|
|
138
132
|
createSimulcastSender(track: LocalVideoTrack, simulcastTrack: SimulcastTrackInfo, opts: TrackPublishOptions, encodings?: RTCRtpEncodingParameters[]): Promise<RTCRtpSender | undefined>;
|
|
139
133
|
private get frameMetadataWorker();
|
|
@@ -151,54 +145,25 @@ export default class RTCEngine extends RTCEngine_base {
|
|
|
151
145
|
waitForRestarted: () => Promise<void>;
|
|
152
146
|
/** @internal */
|
|
153
147
|
publishRpcAck(destinationIdentity: string, requestId: string): Promise<void>;
|
|
154
|
-
sendDataPacket(packet: DataPacket,
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
private updateAndEmitDCBufferStatus;
|
|
158
|
-
/**
|
|
159
|
-
* Whether the send buffer has room to accept more data (the send gate). Senders proceed while
|
|
160
|
-
* this is true and block once it goes false.
|
|
161
|
-
*/
|
|
162
|
-
private isBelowHighWaterMark;
|
|
163
|
-
/**
|
|
164
|
-
* Whether the send buffer has drained to its low-water mark. Drives the public
|
|
165
|
-
* {@link EngineEvent.DCBufferStatusChanged} event.
|
|
166
|
-
*/
|
|
167
|
-
private isBelowLowWaterMark;
|
|
168
|
-
/** Per-kind lock serializing senders that have to wait for the buffer to drain. */
|
|
169
|
-
private waitForBufferHeadroomLocks;
|
|
170
|
-
/**
|
|
171
|
-
* Per-kind AbortController that cancels parked headroom waiters whenever a kind's channel object
|
|
172
|
-
* stops being current (replaced by createDataChannels or torn down by cleanupPeerConnections). A
|
|
173
|
-
* waiter is parked on the channel object it captured at wait entry; if that object is abandoned
|
|
174
|
-
* its events may never fire again, so the abort is what rejects the waiter and releases the
|
|
175
|
-
* headroom lock instead of stranding every future sender behind it.
|
|
176
|
-
*/
|
|
177
|
-
private waiterAbortControllers;
|
|
178
|
-
private waiterAbortSignal;
|
|
179
|
-
/** Rejects all parked headroom waiters (all kinds); the next waiter gets a fresh controller. */
|
|
180
|
-
private invalidateDataChannelWaiters;
|
|
181
|
-
/** Acquires the per-kind headroom lock, resolving with the unlock function. */
|
|
182
|
-
private getBufferHeadroomLock;
|
|
148
|
+
sendDataPacket(packet: DataPacket,
|
|
149
|
+
/** Data-track frames don't come through here — they're sent pre-serialized via {@link sendDataTrackFrame }. */
|
|
150
|
+
kind: Exclude<DataChannelKind, DataChannelKind.DATA_TRACK_LOSSY>): Promise<void>;
|
|
183
151
|
/**
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
*
|
|
187
|
-
*
|
|
152
|
+
* Sends pre-serialized bytes on the data-track channel. This is the one send path that doesn't
|
|
153
|
+
* go through {@link sendDataPacket} — Room's `packetAvailable` handler calls it directly with
|
|
154
|
+
* bytes the data-track pipeline already serialized.
|
|
155
|
+
*
|
|
156
|
+
* @internal
|
|
188
157
|
*/
|
|
189
|
-
|
|
158
|
+
sendDataTrackFrame(bytes: NonSharedUint8Array): Promise<void>;
|
|
159
|
+
private resendReliableMessagesForResume;
|
|
160
|
+
/** The flow-control gate for `kind` — see {@link FlowControlledDataChannel}. */
|
|
161
|
+
private flowControlFor;
|
|
190
162
|
/**
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
* already hold the kind's headroom lock (via {@link getBufferHeadroomLock}). The resume replay
|
|
194
|
-
* holds the lock across its whole batch and calls this per message so no other sender can
|
|
195
|
-
* interleave; the single-send path goes through {@link waitForBufferHeadroomWithLock}.
|
|
196
|
-
*
|
|
197
|
-
* Serializing through the per-kind lock means that, once the buffer drains, queued callers
|
|
198
|
-
* refill it one at a time (up to the high-water mark) rather than all at once and overflowing
|
|
199
|
-
* the SCTP send buffer (see livekit/client-sdk-js#1995).
|
|
163
|
+
* Resolves once the caller may send on the `kind` channel — see
|
|
164
|
+
* {@link FlowControlledDataChannel.waitForHeadroomWithLock}.
|
|
200
165
|
*/
|
|
201
|
-
|
|
166
|
+
waitForBufferHeadroom(kind: DataChannelKind): Promise<void>;
|
|
202
167
|
/**
|
|
203
168
|
* @internal
|
|
204
169
|
*/
|
|
@@ -268,5 +233,4 @@ export interface RegionStrategy {
|
|
|
268
233
|
getNextUrl(abortSignal?: AbortSignal): Promise<string | null>;
|
|
269
234
|
resetAttempts(): void;
|
|
270
235
|
}
|
|
271
|
-
export {};
|
|
272
236
|
//# sourceMappingURL=RTCEngine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RTCEngine.d.ts","sourceRoot":"","sources":["../../../src/room/RTCEngine.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,eAAe,EAGpB,KAAK,uBAAuB,EAG5B,UAAU,EAEV,0BAA0B,EAC1B,gBAAgB,EAGhB,eAAe,EACf,KAAK,YAAY,EAIjB,eAAe,EACf,wBAAwB,EAGxB,KAAK,cAAc,EACnB,eAAe,EACf,IAAI,IAAI,SAAS,EACjB,iBAAiB,EAEjB,UAAU,EAGV,WAAW,EACX,KAAK,iBAAiB,EACtB,uBAAuB,EACvB,KAAK,4BAA4B,EACjC,KAAK,oBAAoB,EAEzB,SAAS,EAET,wBAAwB,EACxB,aAAa,EACb,0BAA0B,EAG3B,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"RTCEngine.d.ts","sourceRoot":"","sources":["../../../src/room/RTCEngine.ts"],"names":[],"mappings":"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"}
|
package/dist/src/room/Room.d.ts
CHANGED
|
@@ -268,7 +268,11 @@ declare class Room extends Room_base {
|
|
|
268
268
|
*/
|
|
269
269
|
private updateSubscriptions;
|
|
270
270
|
private getRemoteParticipantBySid;
|
|
271
|
+
/** The client capabilities this SDK advertises to other participants in its `ClientInfo`. */
|
|
272
|
+
private getClientInfoCapabilities;
|
|
271
273
|
private getRemoteParticipantClientProtocol;
|
|
274
|
+
private getRemoteParticipantCapabilities;
|
|
275
|
+
private getAllRemoteParticipantIdentities;
|
|
272
276
|
private registerRpcDataStreamHandler;
|
|
273
277
|
private registerConnectionReconcile;
|
|
274
278
|
private clearConnectionReconcile;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Room.d.ts","sourceRoot":"","sources":["../../../src/room/Room.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,eAAe,EACf,gBAAgB,EAChB,eAAe,EAIf,YAAY,EAGZ,qBAAqB,EAErB,UAAU,EAEV,OAAO,EAGP,iBAAiB,EAOjB,oBAAoB,IAAI,yBAAyB,EAGlD,MAAM,mBAAmB,CAAC;AAE3B,OAAO,gBAAgB,CAAC;AACxB,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAO9C,OAAO,KAAK,EAEV,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,YAAY,MAAM,uBAAuB,CAAC;AAKjD,OAAO,SAAS,EAAE,EAAE,eAAe,EAAuB,MAAM,aAAa,CAAC;AAG9E,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,eAAe,MAAM,8BAA8B,CAAC;AAGhE,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAQtE,OAAO,EAGL,yBAAyB,EAE1B,MAAM,UAAU,CAAC;AAElB,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAC9D,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,KAAK,iBAAiB,EAAmB,MAAM,2BAA2B,CAAC;AACpF,OAAO,iBAAiB,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAKL,KAAK,iBAAiB,EAEvB,MAAM,OAAO,CAAC;AAIf,OAAO,qBAAqB,MAAM,+BAA+B,CAAC;AAElE,OAAO,KAAK,WAAW,MAAM,qBAAqB,CAAC;AACnD,OAAO,sBAAsB,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAIjE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Room.d.ts","sourceRoot":"","sources":["../../../src/room/Room.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { PCTransportManager } from '../PCTransportManager';
|
|
2
|
+
import { FlowControlledDataChannel } from './FlowControlledDataChannel';
|
|
3
|
+
import { LossyDataChannel } from './LossyDataChannel';
|
|
4
|
+
import { ReliableDataChannel } from './ReliableDataChannel';
|
|
5
|
+
import { DataChannelKind } from './types';
|
|
6
|
+
export interface DataChannelManagerOptions {
|
|
7
|
+
/** Whether the owning engine has been closed — a closed engine rejects headroom waiters. */
|
|
8
|
+
isEngineClosed: () => boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Whether a reconnect attempt is underway: reliable sends defer to the resume replay and lossy
|
|
11
|
+
* sends are skipped while this is true.
|
|
12
|
+
*/
|
|
13
|
+
isReconnecting: () => boolean;
|
|
14
|
+
onDataMessage: (message: MessageEvent) => void;
|
|
15
|
+
onDataTrackMessage: (message: MessageEvent) => void;
|
|
16
|
+
onDataError: (event: Event) => void;
|
|
17
|
+
onChannelClose: (kind: DataChannelKind) => void;
|
|
18
|
+
/** A channel's buffer crossed its low-water mark (debounced). Drives DCBufferStatusChanged. */
|
|
19
|
+
onBufferStatusChanged: (kind: DataChannelKind, isLow: boolean) => void;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Owns the engine's data channels: the three flow-controlled publisher channel wrappers (which
|
|
23
|
+
* live for the engine's lifetime and have RTCDataChannel handles attached/detached as peer
|
|
24
|
+
* connections come and go) plus the subscriber-side receive handles adopted by label.
|
|
25
|
+
*
|
|
26
|
+
* Handle turnover goes through {@link FlowControlledDataChannel.attach}/`detach`, which reject
|
|
27
|
+
* parked headroom waiters as a built-in — there is no separate invalidation step to forget.
|
|
28
|
+
*/
|
|
29
|
+
export declare class DataChannelManager {
|
|
30
|
+
readonly reliable: ReliableDataChannel;
|
|
31
|
+
readonly lossy: LossyDataChannel;
|
|
32
|
+
readonly dataTrack: LossyDataChannel;
|
|
33
|
+
private reliableSub?;
|
|
34
|
+
private lossySub?;
|
|
35
|
+
private dataTrackSub?;
|
|
36
|
+
private opts;
|
|
37
|
+
constructor(opts: DataChannelManagerOptions);
|
|
38
|
+
/** The flow-control wrapper for `kind`. */
|
|
39
|
+
channelFor(kind: DataChannelKind): FlowControlledDataChannel;
|
|
40
|
+
/** The raw RTCDataChannel handle for `kind`, publisher side by default. */
|
|
41
|
+
getHandle(kind: DataChannelKind, subscriber?: boolean): RTCDataChannel | undefined;
|
|
42
|
+
get hasPublisherChannels(): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Creates the three publisher data channels on the given transport, wires their handlers, and
|
|
45
|
+
* attaches them to the wrappers — attaching rejects any waiters still parked on replaced
|
|
46
|
+
* channel objects.
|
|
47
|
+
*/
|
|
48
|
+
createPublisherChannels(pcManager: PCTransportManager): void;
|
|
49
|
+
/**
|
|
50
|
+
* Adopts a subscriber-side data channel by label, wiring the matching receive handler.
|
|
51
|
+
* Returns false for labels this manager doesn't own.
|
|
52
|
+
*/
|
|
53
|
+
adoptSubscriberChannel(channel: RTCDataChannel): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Tears down all channels for a peer-connection cleanup: rejects parked waiters (detach — the
|
|
56
|
+
* spec allows `pc.close()` to transition channels to 'closed' without firing events, so waiting
|
|
57
|
+
* for browser close events is not an option), strips handlers, closes the handles, and resets
|
|
58
|
+
* the reliable session state.
|
|
59
|
+
*/
|
|
60
|
+
teardown(): void;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=DataChannelManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataChannelManager.d.ts","sourceRoot":"","sources":["../../../../src/room/data-channel/DataChannelManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAqD,MAAM,SAAS,CAAC;AAM7F,MAAM,WAAW,yBAAyB;IACxC,4FAA4F;IAC5F,cAAc,EAAE,MAAM,OAAO,CAAC;IAC9B;;;OAGG;IACH,cAAc,EAAE,MAAM,OAAO,CAAC;IAC9B,aAAa,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC/C,kBAAkB,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IACpD,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACpC,cAAc,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAChD,+FAA+F;IAC/F,qBAAqB,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACxE;AAED;;;;;;;GAOG;AACH,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IAEvC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IAEjC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAErC,OAAO,CAAC,WAAW,CAAC,CAAiB;IAErC,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAElC,OAAO,CAAC,YAAY,CAAC,CAAiB;IAEtC,OAAO,CAAC,IAAI,CAA4B;gBAE5B,IAAI,EAAE,yBAAyB;IA4B3C,2CAA2C;IAC3C,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,yBAAyB;IAW5D,2EAA2E;IAC3E,SAAS,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,GAAE,OAAe,GAAG,cAAc,GAAG,SAAS;IAczF,IAAI,oBAAoB,IAAI,OAAO,CAIlC;IAED;;;;OAIG;IACH,uBAAuB,CAAC,SAAS,EAAE,kBAAkB;IAwDrD;;;OAGG;IACH,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO;IAkBxD;;;;;OAKG;IACH,QAAQ;CAqCT"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import type { DataChannelKind } from './types';
|
|
2
|
+
export interface FlowControlledDataChannelOptions {
|
|
3
|
+
kind: DataChannelKind;
|
|
4
|
+
/** Buffer level (bytes) at which blocked senders resume; armed as `bufferedAmountLowThreshold`. */
|
|
5
|
+
lowWaterMark: number;
|
|
6
|
+
/** Buffer level (bytes) above which senders block until the buffer drains to the low mark. */
|
|
7
|
+
highWaterMark: number;
|
|
8
|
+
/** Whether the owning engine has been closed — a closed engine rejects waiters immediately. */
|
|
9
|
+
isEngineClosed: () => boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Notified when the buffer crosses the low-water mark in either direction (debounced: fires only
|
|
12
|
+
* on an actual change). Drives the engine's public DCBufferStatusChanged event.
|
|
13
|
+
*/
|
|
14
|
+
onBufferStatusChanged?: (isLow: boolean) => void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Two-watermark flow control for one data channel kind.
|
|
18
|
+
*
|
|
19
|
+
* Owns the per-kind headroom gate: senders proceed freely while the buffer is at or below the
|
|
20
|
+
* high-water mark and otherwise block — serialized FIFO through a mutex — until the browser's
|
|
21
|
+
* `bufferedamountlow` event (armed at the low-water mark) signals the buffer has drained. The
|
|
22
|
+
* serialization prevents woken senders from all refilling at once and overflowing the SCTP send
|
|
23
|
+
* buffer (see livekit/client-sdk-js#1995).
|
|
24
|
+
*
|
|
25
|
+
* Waiters are parked on the channel object captured at wait entry. If that object stops being
|
|
26
|
+
* current — replaced or torn down — its events may never fire again, so the owner must call
|
|
27
|
+
* {@link invalidateWaiters}, which aborts parked waiters (releasing the gate); the next waiter
|
|
28
|
+
* gets a fresh controller.
|
|
29
|
+
*/
|
|
30
|
+
export declare class FlowControlledDataChannel {
|
|
31
|
+
readonly kind: DataChannelKind;
|
|
32
|
+
readonly lowWaterMark: number;
|
|
33
|
+
readonly highWaterMark: number;
|
|
34
|
+
protected isEngineClosed: () => boolean;
|
|
35
|
+
private onBufferStatusChanged?;
|
|
36
|
+
/** Last emitted low-water status; starts true (an empty buffer is below the mark). */
|
|
37
|
+
private bufferStatusLow;
|
|
38
|
+
private handle?;
|
|
39
|
+
private headroomLock;
|
|
40
|
+
/** Cancels parked headroom waiters when the handle is replaced or torn down. */
|
|
41
|
+
private waiterAbortController;
|
|
42
|
+
constructor(opts: FlowControlledDataChannelOptions);
|
|
43
|
+
/** The currently attached RTCDataChannel handle, if any. */
|
|
44
|
+
get channelHandle(): RTCDataChannel | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* Attaches the channel handle this wrapper controls. Replacing an existing handle rejects
|
|
47
|
+
* parked waiters — their events would never fire again on the abandoned object — and installs a
|
|
48
|
+
* fresh controller, so queued senders re-check against the new channel. Wrappers outlive their
|
|
49
|
+
* handles: this is the one place handle turnover happens, which is what makes stranding a
|
|
50
|
+
* waiter structurally impossible.
|
|
51
|
+
*/
|
|
52
|
+
attach(dc: RTCDataChannel): void;
|
|
53
|
+
/** Detaches the handle on teardown, rejecting parked waiters. */
|
|
54
|
+
detach(reason?: string): void;
|
|
55
|
+
protected getChannel(): RTCDataChannel | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* Whether the send buffer has room to accept more data (the send gate). Senders proceed while
|
|
58
|
+
* this is true and block once it goes false. Callers resolve the handle (and decide what an
|
|
59
|
+
* absent one means) before asking.
|
|
60
|
+
*/
|
|
61
|
+
isBelowHighWaterMark(dc: RTCDataChannel): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Whether the send buffer has drained to its low-water mark. Drives the engine's public
|
|
64
|
+
* DCBufferStatusChanged event.
|
|
65
|
+
*/
|
|
66
|
+
isBelowLowWaterMark(dc: RTCDataChannel): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Acquires the headroom lock, resolving with the unlock function. Batch senders (the resume
|
|
69
|
+
* replay) hold it across all of their sends so no other sender can interleave, calling
|
|
70
|
+
* {@link waitForHeadroomWithoutLock} per message to respect flow control within the batch.
|
|
71
|
+
*/
|
|
72
|
+
lockHeadroom(): Promise<() => void>;
|
|
73
|
+
/**
|
|
74
|
+
* Resolves once the caller may send on this channel: immediately while the send buffer is at or
|
|
75
|
+
* below its high-water mark, otherwise once the buffer has drained to the low-water mark (the
|
|
76
|
+
* `bufferedamountlow` event). Callers are serialized through the headroom lock so that, when
|
|
77
|
+
* the buffer drains, they refill it one at a time (up to the high-water mark) rather than all
|
|
78
|
+
* sending at once and overflowing the SCTP send buffer (see livekit/client-sdk-js#1995). The
|
|
79
|
+
* closed/buffer checks run inside the lock so queued callers proceed in FIFO order.
|
|
80
|
+
*/
|
|
81
|
+
waitForHeadroomWithLock(): Promise<void>;
|
|
82
|
+
/** Core wait of {@link waitForHeadroomWithLock}. The caller must hold the headroom lock. */
|
|
83
|
+
waitForHeadroomWithoutLock(): Promise<void>;
|
|
84
|
+
/** Rejects all parked headroom waiters; the next waiter gets a fresh controller. */
|
|
85
|
+
invalidateWaiters(reason: string): void;
|
|
86
|
+
/**
|
|
87
|
+
* Recomputes whether the buffer has drained to the low-water mark and, if that changed since the
|
|
88
|
+
* last check, notifies the status listener. Two independent triggers land here: a send (which
|
|
89
|
+
* raises the buffer) and the `bufferedamountlow` drain event (which lowers it) — the latter has
|
|
90
|
+
* no send to hang the work off, which is why this is a shared entry point rather than a tail of
|
|
91
|
+
* `send`.
|
|
92
|
+
*/
|
|
93
|
+
refreshBufferStatus(): void;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=FlowControlledDataChannel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlowControlledDataChannel.d.ts","sourceRoot":"","sources":["../../../../src/room/data-channel/FlowControlledDataChannel.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,eAAe,CAAC;IACtB,mGAAmG;IACnG,YAAY,EAAE,MAAM,CAAC;IACrB,8FAA8F;IAC9F,aAAa,EAAE,MAAM,CAAC;IACtB,+FAA+F;IAC/F,cAAc,EAAE,MAAM,OAAO,CAAC;IAC9B;;;OAGG;IACH,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAClD;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,yBAAyB;IACpC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAE/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,SAAS,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC;IAExC,OAAO,CAAC,qBAAqB,CAAC,CAA2B;IAEzD,sFAAsF;IACtF,OAAO,CAAC,eAAe,CAAQ;IAE/B,OAAO,CAAC,MAAM,CAAC,CAAiB;IAEhC,OAAO,CAAC,YAAY,CAAe;IAEnC,gFAAgF;IAChF,OAAO,CAAC,qBAAqB,CAAyB;gBAE1C,IAAI,EAAE,gCAAgC;IAQlD,4DAA4D;IAC5D,IAAI,aAAa,IAAI,cAAc,GAAG,SAAS,CAE9C;IAED;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,EAAE,cAAc;IAOzB,iEAAiE;IACjE,MAAM,CAAC,MAAM,GAAE,MAAiC;IAOhD,SAAS,CAAC,UAAU,IAAI,cAAc,GAAG,SAAS;IAIlD;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO;IAKjD;;;OAGG;IACH,mBAAmB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO;IAKhD;;;;OAIG;IACH,YAAY,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC;IAInC;;;;;;;OAOG;IACG,uBAAuB;IAS7B,4FAA4F;IACtF,0BAA0B;IAmDhC,oFAAoF;IACpF,iBAAiB,CAAC,MAAM,EAAE,MAAM;IAKhC;;;;;;OAMG;IACH,mBAAmB;CAWpB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { NonSharedUint8Array } from '../../type-polyfills/non-shared-typed-arrays';
|
|
2
|
+
import { FlowControlledDataChannel, type FlowControlledDataChannelOptions } from './FlowControlledDataChannel';
|
|
3
|
+
export interface LossyDataChannelOptions extends FlowControlledDataChannelOptions {
|
|
4
|
+
/**
|
|
5
|
+
* What to do with a send while the buffer is full: `drop` discards it to keep latency bounded
|
|
6
|
+
* (the classic lossy channel), `wait` backpressures the producer until there is headroom (the
|
|
7
|
+
* data-track channel, whose producer decides what to skip at frame granularity).
|
|
8
|
+
*/
|
|
9
|
+
bufferFullBehavior: 'drop' | 'wait';
|
|
10
|
+
/** Sends are silently discarded while this is true (a reconnect attempt is underway). */
|
|
11
|
+
shouldSkipSends: () => boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* A lossy channel: flow control plus a per-instance full-buffer policy.
|
|
15
|
+
*
|
|
16
|
+
* Each instance owns its own byterate stat, drop counter, and (when tuning is started) the
|
|
17
|
+
* dynamic `bufferedAmountLowThreshold` adjustment that keeps the drop gate at roughly 100ms of
|
|
18
|
+
* buffered latency. Keeping these per instance is what prevents one channel's traffic from
|
|
19
|
+
* steering another channel's policy.
|
|
20
|
+
*/
|
|
21
|
+
export declare class LossyDataChannel extends FlowControlledDataChannel {
|
|
22
|
+
private bufferFullBehavior;
|
|
23
|
+
private shouldSkipSends;
|
|
24
|
+
private statCurrentBytes;
|
|
25
|
+
private statByterate;
|
|
26
|
+
private statInterval;
|
|
27
|
+
private dropCount;
|
|
28
|
+
constructor(opts: LossyDataChannelOptions);
|
|
29
|
+
/** Sends prepared bytes with this channel's full-buffer policy (drop or wait). */
|
|
30
|
+
send(msg: NonSharedUint8Array): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Starts the once-per-second adjustment of the channel's `bufferedAmountLowThreshold` to the
|
|
33
|
+
* observed byterate, keeping the drop gate at roughly 100ms of buffered latency (clamped to
|
|
34
|
+
* the watermarks). Restarts cleanly if already running.
|
|
35
|
+
*/
|
|
36
|
+
startThresholdTuning(): void;
|
|
37
|
+
/** Stops the threshold tuning and resets the stats and drop counter. */
|
|
38
|
+
stopThresholdTuning(): void;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=LossyDataChannel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LossyDataChannel.d.ts","sourceRoot":"","sources":["../../../../src/room/data-channel/LossyDataChannel.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAExF,OAAO,EACL,yBAAyB,EACzB,KAAK,gCAAgC,EACtC,MAAM,6BAA6B,CAAC;AAErC,MAAM,WAAW,uBAAwB,SAAQ,gCAAgC;IAC/E;;;;OAIG;IACH,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,yFAAyF;IACzF,eAAe,EAAE,MAAM,OAAO,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,qBAAa,gBAAiB,SAAQ,yBAAyB;IAC7D,OAAO,CAAC,kBAAkB,CAAkB;IAE5C,OAAO,CAAC,eAAe,CAAgB;IAEvC,OAAO,CAAC,gBAAgB,CAAK;IAE7B,OAAO,CAAC,YAAY,CAAK;IAEzB,OAAO,CAAC,YAAY,CAA6C;IAEjE,OAAO,CAAC,SAAS,CAAK;gBAEV,IAAI,EAAE,uBAAuB;IAMzC,kFAAkF;IAC5E,IAAI,CAAC,GAAG,EAAE,mBAAmB;IA4CnC;;;;OAIG;IACH,oBAAoB;IAkBpB,wEAAwE;IACxE,mBAAmB;CASpB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { NonSharedUint8Array } from '../../type-polyfills/non-shared-typed-arrays';
|
|
2
|
+
import { FlowControlledDataChannel, type FlowControlledDataChannelOptions } from './FlowControlledDataChannel';
|
|
3
|
+
export interface ReliableDataChannelOptions extends FlowControlledDataChannelOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Whether sends should currently be deferred to the resume replay instead of hitting the wire
|
|
6
|
+
* (i.e. a reconnect attempt is underway). Read at send time so the reliable channel matches the
|
|
7
|
+
* engine's reconnect state without owning it.
|
|
8
|
+
*/
|
|
9
|
+
isDeferringSends: () => boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* The reliable channel: flow control plus delivery-across-resume semantics.
|
|
13
|
+
*
|
|
14
|
+
* Every packet gets a monotonic sequence (stamped into the protobuf by the caller before
|
|
15
|
+
* serialization, via {@link nextSequence}) and is retained in a replay buffer until the channel's
|
|
16
|
+
* `bufferedAmount` confirms it has been handed to the transport. Sends that land in a reconnect
|
|
17
|
+
* window — or whose headroom wait is torn down transiently — are queued unsent and resolve;
|
|
18
|
+
* {@link replay} delivers them (plus any unacked packets) after a resume. Only an engine close
|
|
19
|
+
* rejects, because no replay is coming after that.
|
|
20
|
+
*/
|
|
21
|
+
export declare class ReliableDataChannel extends FlowControlledDataChannel {
|
|
22
|
+
private messageBuffer;
|
|
23
|
+
private sequence;
|
|
24
|
+
private isDeferringSends;
|
|
25
|
+
constructor(opts: ReliableDataChannelOptions);
|
|
26
|
+
/**
|
|
27
|
+
* Claims the next packet sequence. The caller stamps it into the packet before serialization,
|
|
28
|
+
* then passes it back to {@link send} so the replay buffer stays keyed by wire sequence.
|
|
29
|
+
*/
|
|
30
|
+
nextSequence(): number;
|
|
31
|
+
/**
|
|
32
|
+
* Sends prepared bytes with reliable semantics. Resolves once the packet has either been handed
|
|
33
|
+
* to the channel or queued for the resume replay; throws only when the engine is closed.
|
|
34
|
+
*/
|
|
35
|
+
send(msg: NonSharedUint8Array, sequence: number): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Replays the buffered backlog after a resume: drops everything the server acked
|
|
38
|
+
* (`lastMessageSeq`), then re-sends the rest in order. The headroom lock is held across the
|
|
39
|
+
* whole replay — releasing it between messages would let a concurrent send (whose newer
|
|
40
|
+
* sequence was already assigned before it queued on the lock) hit the wire mid-replay, and
|
|
41
|
+
* receivers would then discard the remaining lower-sequence resent messages as duplicates.
|
|
42
|
+
*/
|
|
43
|
+
replay(lastMessageSeq: number): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Before recomputing status, trim packets the transport has now delivered — a send or a drain
|
|
46
|
+
* may have acked buffered packets, and the replay buffer is keyed off the channel's buffered
|
|
47
|
+
* bytes.
|
|
48
|
+
*/
|
|
49
|
+
refreshBufferStatus(): void;
|
|
50
|
+
/**
|
|
51
|
+
* Drops all replay state and restarts sequencing. Only valid on a full reconnect, where the
|
|
52
|
+
* session (and the receivers' sequence tracking) starts over.
|
|
53
|
+
*/
|
|
54
|
+
reset(): void;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=ReliableDataChannel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReliableDataChannel.d.ts","sourceRoot":"","sources":["../../../../src/room/data-channel/ReliableDataChannel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAExF,OAAO,EACL,yBAAyB,EACzB,KAAK,gCAAgC,EACtC,MAAM,6BAA6B,CAAC;AAErC,MAAM,WAAW,0BAA2B,SAAQ,gCAAgC;IAClF;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,OAAO,CAAC;CACjC;AAED;;;;;;;;;GASG;AACH,qBAAa,mBAAoB,SAAQ,yBAAyB;IAChE,OAAO,CAAC,aAAa,CAA0B;IAE/C,OAAO,CAAC,QAAQ,CAAK;IAErB,OAAO,CAAC,gBAAgB,CAAgB;gBAE5B,IAAI,EAAE,0BAA0B;IAK5C;;;OAGG;IACH,YAAY,IAAI,MAAM;IAMtB;;;OAGG;IACG,IAAI,CAAC,GAAG,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM;IAsCrD;;;;;;OAMG;IACG,MAAM,CAAC,cAAc,EAAE,MAAM;IAkCnC;;;;OAIG;IACM,mBAAmB;IAQ5B;;;OAGG;IACH,KAAK;CAIN"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare enum DataChannelKind {
|
|
2
|
+
RELIABLE = 0,
|
|
3
|
+
LOSSY = 1,
|
|
4
|
+
DATA_TRACK_LOSSY = 2
|
|
5
|
+
}
|
|
6
|
+
export declare const reliableDataChannelWaterMarkLow: number;
|
|
7
|
+
export declare const reliableDataChannelWaterMarkHigh: number;
|
|
8
|
+
export declare const lossyDataChannelWaterMarkLow: number;
|
|
9
|
+
export declare const lossyDataChannelWaterMarkHigh: number;
|
|
10
|
+
export declare function dataChannelLowWaterMark(kind: DataChannelKind): number;
|
|
11
|
+
export declare function dataChannelHighWaterMark(kind: DataChannelKind): number;
|
|
12
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/room/data-channel/types.ts"],"names":[],"mappings":"AAEA,oBAAY,eAAe;IACzB,QAAQ,IAA2B;IACnC,KAAK,IAAwB;IAC7B,gBAAgB,IAAI;CACrB;AAQD,eAAO,MAAM,+BAA+B,QAAY,CAAC;AACzD,eAAO,MAAM,gCAAgC,QAAc,CAAC;AAC5D,eAAO,MAAM,4BAA4B,QAAW,CAAC;AACrD,eAAO,MAAM,6BAA6B,QAAa,CAAC;AAExD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAIrE;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAItE"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compression helpers for data streams. The buffered deflate-raw variant ({@link deflateRawCompress})
|
|
3
|
+
* is for the inline (single-packet) case where the payload is small and bounded;
|
|
4
|
+
* {@link deflateRawTransform} / {@link inflateRawTransform} serve the chunked (multi-packet)
|
|
5
|
+
* `sendText`/`sendBytes`/`sendFile` paths, streaming the bytes through without buffering the whole
|
|
6
|
+
* payload.
|
|
7
|
+
*
|
|
8
|
+
* These operate on bytes (not strings) so a single set of helpers serves both text and byte streams;
|
|
9
|
+
* the `TextEncoder`/`TextDecoder` boundary lives at the manager/reader edges.
|
|
10
|
+
*
|
|
11
|
+
* Both streaming variants are exposed as `ReadableWritablePair`s so they drop straight into a
|
|
12
|
+
* `pipeThrough` chain. Each needs one localized cast to bridge a DOM lib-type mismatch: the platform
|
|
13
|
+
* `CompressionStream`/`DecompressionStream` type their `writable` as `WritableStream<BufferSource>`
|
|
14
|
+
* (a wider element type than `Uint8Array`), and `WritableStream<W>` is covariant in `W`, so neither
|
|
15
|
+
* is structurally a `ReadableWritablePair<Uint8Array, Uint8Array>` without help.
|
|
16
|
+
*
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
import { type NonSharedUint8Array } from '../../type-polyfills/non-shared-typed-arrays';
|
|
20
|
+
/**
|
|
21
|
+
* A `deflate-raw` compression transform (inverse of {@link inflateRawTransform}): pipe a byte stream
|
|
22
|
+
* through it to get the compressed bytes without buffering the whole payload. Used for the chunked
|
|
23
|
+
* `sendText`/`sendBytes`/`sendFile` paths, where the full payload is known up front but is streamed
|
|
24
|
+
* (e.g. from `file.stream()`) rather than held in memory.
|
|
25
|
+
*/
|
|
26
|
+
export declare function deflateRawTransform(): ReadableWritablePair<NonSharedUint8Array, NonSharedUint8Array>;
|
|
27
|
+
/**
|
|
28
|
+
* A `deflate-raw` decompression transform (inverse of {@link deflateRawTransform}): pipe a
|
|
29
|
+
* stream of compressed bytes through it to get the decompressed bytes. Inflate emits output greedily,
|
|
30
|
+
* so as long as the sender flushed at write boundaries each write's content is produced as soon as
|
|
31
|
+
* its compressed bytes arrive.
|
|
32
|
+
*/
|
|
33
|
+
export declare function inflateRawTransform(): ReadableWritablePair<NonSharedUint8Array, NonSharedUint8Array>;
|
|
34
|
+
/** deflate-raw compresses a byte array in full. Use for inline payloads; prefer the streaming
|
|
35
|
+
* path for the chunked case. */
|
|
36
|
+
export declare function deflateRawCompress(data: NonSharedUint8Array): Promise<NonSharedUint8Array>;
|
|
37
|
+
/**
|
|
38
|
+
* Decompresses a raw-deflate byte array in full (inverse of {@link deflateRawCompress}).
|
|
39
|
+
* `maxByteLength` bounds the decompressed output (decompression-bomb guard); exceeding it rejects
|
|
40
|
+
* with a `PayloadTooLarge` error.
|
|
41
|
+
*/
|
|
42
|
+
export declare function deflateRawDecompress(data: NonSharedUint8Array, maxByteLength?: number): Promise<NonSharedUint8Array>;
|
|
43
|
+
/**
|
|
44
|
+
* Drains a byte stream, concatenating all of its chunks into a single array. When
|
|
45
|
+
* `maxByteLength` is given, drops the stream and throws `PayloadTooLarge` as soon as the
|
|
46
|
+
* accumulated output exceeds it.
|
|
47
|
+
*/
|
|
48
|
+
export declare function collect(stream: ReadableStream<NonSharedUint8Array>, maxByteLength?: number): Promise<NonSharedUint8Array>;
|
|
49
|
+
//# sourceMappingURL=compression.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../../../src/room/data-stream/compression.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAGxF;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,oBAAoB,CACzD,mBAAmB,EACnB,mBAAmB,CACpB,CAKA;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,oBAAoB,CACzD,mBAAmB,EACnB,mBAAmB,CACpB,CAKA;AAED;gCACgC;AAChC,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAMhG;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,mBAAmB,EACzB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,mBAAmB,CAAC,CAS9B;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,cAAc,CAAC,mBAAmB,CAAC,EAC3C,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,mBAAmB,CAAC,CA0B9B"}
|