livekit-client 1.15.2 → 1.15.3
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/livekit-client.e2ee.worker.js.map +1 -1
- package/dist/livekit-client.e2ee.worker.mjs +1 -2
- package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
- package/dist/livekit-client.esm.mjs +139 -123
- package/dist/livekit-client.esm.mjs.map +1 -1
- package/dist/livekit-client.umd.js +1 -1
- package/dist/livekit-client.umd.js.map +1 -1
- package/dist/src/api/SignalClient.d.ts +11 -2
- package/dist/src/api/SignalClient.d.ts.map +1 -1
- package/dist/src/room/RTCEngine.d.ts.map +1 -1
- package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
- package/dist/src/room/utils.d.ts.map +1 -1
- package/dist/ts4.2/src/api/SignalClient.d.ts +11 -2
- package/package.json +11 -11
- package/src/api/SignalClient.ts +142 -118
- package/src/room/RTCEngine.ts +7 -3
- package/src/room/Room.ts +1 -1
- package/src/room/participant/LocalParticipant.ts +6 -1
- package/src/room/utils.ts +11 -0
@@ -19,10 +19,15 @@ export interface SignalOptions {
|
|
19
19
|
websocketTimeout: number;
|
20
20
|
}
|
21
21
|
type SignalMessage = SignalRequest['message'];
|
22
|
+
export declare enum SignalConnectionState {
|
23
|
+
CONNECTING = 0,
|
24
|
+
CONNECTED = 1,
|
25
|
+
RECONNECTING = 2,
|
26
|
+
DISCONNECTING = 3,
|
27
|
+
DISCONNECTED = 4
|
28
|
+
}
|
22
29
|
/** @internal */
|
23
30
|
export declare class SignalClient {
|
24
|
-
isConnected: boolean;
|
25
|
-
isReconnecting: boolean;
|
26
31
|
requestQueue: AsyncQueue;
|
27
32
|
queuedRequests: Array<() => Promise<void>>;
|
28
33
|
useJSON: boolean;
|
@@ -50,12 +55,16 @@ export declare class SignalClient {
|
|
50
55
|
onLeave?: (leave: LeaveRequest) => void;
|
51
56
|
connectOptions?: ConnectOpts;
|
52
57
|
ws?: WebSocket;
|
58
|
+
get currentState(): SignalConnectionState;
|
59
|
+
get isDisconnected(): boolean;
|
53
60
|
private options?;
|
54
61
|
private pingTimeout;
|
55
62
|
private pingTimeoutDuration;
|
56
63
|
private pingIntervalDuration;
|
57
64
|
private pingInterval;
|
58
65
|
private closingLock;
|
66
|
+
private state;
|
67
|
+
private connectionLock;
|
59
68
|
constructor(useJSON?: boolean);
|
60
69
|
join(url: string, token: string, opts: SignalOptions, abortSignal?: AbortSignal): Promise<JoinResponse>;
|
61
70
|
reconnect(url: string, token: string, sid?: string, reason?: ReconnectReason): Promise<ReconnectResponse | void>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SignalClient.d.ts","sourceRoot":"","sources":["../../../src/api/SignalClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,eAAe,EACf,eAAe,EACf,IAAI,EACJ,WAAW,EACX,UAAU,EACX,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,YAAY,EACZ,YAAY,EAGZ,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EAEb,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EAEvB,4BAA4B,EAC5B,oBAAoB,EACpB,SAAS,EACT,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EAGxB,kBAAkB,EAClB,mBAAmB,EAEpB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,UAAU,WAAY,SAAQ,aAAa;IACzC,eAAe;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,OAAO,CAAC;IACvB,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,KAAK,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;AAmB9C,
|
1
|
+
{"version":3,"file":"SignalClient.d.ts","sourceRoot":"","sources":["../../../src/api/SignalClient.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"RTCEngine.d.ts","sourceRoot":"","sources":["../../../src/room/RTCEngine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,iBAAiB,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,
|
1
|
+
{"version":3,"file":"RTCEngine.d.ts","sourceRoot":"","sources":["../../../src/room/RTCEngine.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"LocalParticipant.d.ts","sourceRoot":"","sources":["../../../../src/room/participant/LocalParticipant.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"LocalParticipant.d.ts","sourceRoot":"","sources":["../../../../src/room/participant/LocalParticipant.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/room/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAkB,MAAM,4BAA4B,CAAC;AAKxE,OAAO,KAAK,eAAe,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,gBAAgB,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAe,MAAM,iBAAiB,CAAC;AAK1D,eAAO,MAAM,cAAc,4FACgE,CAAC;AAE5F,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAMvD;AAED,wBAAsB,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3D;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,YAElC;AAED,gBAAgB;AAChB,wBAAgB,gBAAgB,YAE/B;AAED,wBAAgB,sBAAsB,YAErC;AAED,wBAAgB,gBAAgB,YAE/B;AAED,wBAAgB,WAAW,IAAI,OAAO,
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/room/utils.ts"],"names":[],"mappings":"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"}
|
@@ -19,10 +19,15 @@ export interface SignalOptions {
|
|
19
19
|
websocketTimeout: number;
|
20
20
|
}
|
21
21
|
type SignalMessage = SignalRequest['message'];
|
22
|
+
export declare enum SignalConnectionState {
|
23
|
+
CONNECTING = 0,
|
24
|
+
CONNECTED = 1,
|
25
|
+
RECONNECTING = 2,
|
26
|
+
DISCONNECTING = 3,
|
27
|
+
DISCONNECTED = 4
|
28
|
+
}
|
22
29
|
/** @internal */
|
23
30
|
export declare class SignalClient {
|
24
|
-
isConnected: boolean;
|
25
|
-
isReconnecting: boolean;
|
26
31
|
requestQueue: AsyncQueue;
|
27
32
|
queuedRequests: Array<() => Promise<void>>;
|
28
33
|
useJSON: boolean;
|
@@ -50,12 +55,16 @@ export declare class SignalClient {
|
|
50
55
|
onLeave?: (leave: LeaveRequest) => void;
|
51
56
|
connectOptions?: ConnectOpts;
|
52
57
|
ws?: WebSocket;
|
58
|
+
get currentState(): SignalConnectionState;
|
59
|
+
get isDisconnected(): boolean;
|
53
60
|
private options?;
|
54
61
|
private pingTimeout;
|
55
62
|
private pingTimeoutDuration;
|
56
63
|
private pingIntervalDuration;
|
57
64
|
private pingInterval;
|
58
65
|
private closingLock;
|
66
|
+
private state;
|
67
|
+
private connectionLock;
|
59
68
|
constructor(useJSON?: boolean);
|
60
69
|
join(url: string, token: string, opts: SignalOptions, abortSignal?: AbortSignal): Promise<JoinResponse>;
|
61
70
|
reconnect(url: string, token: string, sid?: string, reason?: ReconnectReason): Promise<ReconnectResponse | void>;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "livekit-client",
|
3
|
-
"version": "1.15.
|
3
|
+
"version": "1.15.3",
|
4
4
|
"description": "JavaScript/TypeScript client SDK for LiveKit",
|
5
5
|
"main": "./dist/livekit-client.umd.js",
|
6
6
|
"unpkg": "./dist/livekit-client.umd.js",
|
@@ -46,10 +46,10 @@
|
|
46
46
|
"webrtc-adapter": "^8.1.1"
|
47
47
|
},
|
48
48
|
"devDependencies": {
|
49
|
-
"@babel/core": "7.23.
|
50
|
-
"@babel/preset-env": "7.23.
|
49
|
+
"@babel/core": "7.23.5",
|
50
|
+
"@babel/preset-env": "7.23.5",
|
51
51
|
"@bufbuild/protoc-gen-es": "^1.3.0",
|
52
|
-
"@changesets/cli": "2.
|
52
|
+
"@changesets/cli": "2.27.1",
|
53
53
|
"@livekit/changesets-changelog-github": "^0.0.4",
|
54
54
|
"@rollup/plugin-babel": "6.0.4",
|
55
55
|
"@rollup/plugin-commonjs": "25.0.7",
|
@@ -60,27 +60,27 @@
|
|
60
60
|
"@size-limit/webpack": "^8.2.4",
|
61
61
|
"@trivago/prettier-plugin-sort-imports": "^4.1.1",
|
62
62
|
"@types/events": "^3.0.0",
|
63
|
-
"@types/sdp-transform": "2.4.
|
64
|
-
"@types/ua-parser-js": "0.7.
|
63
|
+
"@types/sdp-transform": "2.4.9",
|
64
|
+
"@types/ua-parser-js": "0.7.39",
|
65
65
|
"@typescript-eslint/eslint-plugin": "5.62.0",
|
66
66
|
"@typescript-eslint/parser": "5.62.0",
|
67
67
|
"downlevel-dts": "^0.11.0",
|
68
|
-
"eslint": "8.
|
68
|
+
"eslint": "8.54.0",
|
69
69
|
"eslint-config-airbnb-typescript": "17.1.0",
|
70
70
|
"eslint-config-prettier": "9.0.0",
|
71
71
|
"eslint-plugin-ecmascript-compat": "^3.0.0",
|
72
72
|
"eslint-plugin-import": "2.29.0",
|
73
|
-
"gh-pages": "6.
|
74
|
-
"jsdom": "^
|
73
|
+
"gh-pages": "6.1.0",
|
74
|
+
"jsdom": "^23.0.0",
|
75
75
|
"prettier": "^2.8.8",
|
76
76
|
"rollup": "3.29.4",
|
77
77
|
"rollup-plugin-delete": "^2.0.0",
|
78
78
|
"rollup-plugin-re": "1.0.7",
|
79
79
|
"rollup-plugin-typescript2": "0.36.0",
|
80
80
|
"size-limit": "^8.2.4",
|
81
|
-
"typedoc": "0.25.
|
81
|
+
"typedoc": "0.25.4",
|
82
82
|
"typedoc-plugin-no-inherit": "1.4.0",
|
83
|
-
"typescript": "5.
|
83
|
+
"typescript": "5.3.2",
|
84
84
|
"vite": "4.5.0",
|
85
85
|
"vitest": "^0.34.0"
|
86
86
|
},
|
package/src/api/SignalClient.ts
CHANGED
@@ -82,12 +82,16 @@ function canPassThroughQueue(req: SignalMessage): boolean {
|
|
82
82
|
return canPass;
|
83
83
|
}
|
84
84
|
|
85
|
+
export enum SignalConnectionState {
|
86
|
+
CONNECTING,
|
87
|
+
CONNECTED,
|
88
|
+
RECONNECTING,
|
89
|
+
DISCONNECTING,
|
90
|
+
DISCONNECTED,
|
91
|
+
}
|
92
|
+
|
85
93
|
/** @internal */
|
86
94
|
export class SignalClient {
|
87
|
-
isConnected: boolean;
|
88
|
-
|
89
|
-
isReconnecting: boolean;
|
90
|
-
|
91
95
|
requestQueue: AsyncQueue;
|
92
96
|
|
93
97
|
queuedRequests: Array<() => Promise<void>>;
|
@@ -141,6 +145,17 @@ export class SignalClient {
|
|
141
145
|
|
142
146
|
ws?: WebSocket;
|
143
147
|
|
148
|
+
get currentState() {
|
149
|
+
return this.state;
|
150
|
+
}
|
151
|
+
|
152
|
+
get isDisconnected() {
|
153
|
+
return (
|
154
|
+
this.state === SignalConnectionState.DISCONNECTING ||
|
155
|
+
this.state === SignalConnectionState.DISCONNECTED
|
156
|
+
);
|
157
|
+
}
|
158
|
+
|
144
159
|
private options?: SignalOptions;
|
145
160
|
|
146
161
|
private pingTimeout: ReturnType<typeof setTimeout> | undefined;
|
@@ -153,13 +168,17 @@ export class SignalClient {
|
|
153
168
|
|
154
169
|
private closingLock: Mutex;
|
155
170
|
|
171
|
+
private state: SignalConnectionState = SignalConnectionState.DISCONNECTED;
|
172
|
+
|
173
|
+
private connectionLock: Mutex;
|
174
|
+
|
156
175
|
constructor(useJSON: boolean = false) {
|
157
|
-
this.isConnected = false;
|
158
|
-
this.isReconnecting = false;
|
159
176
|
this.useJSON = useJSON;
|
160
177
|
this.requestQueue = new AsyncQueue();
|
161
178
|
this.queuedRequests = [];
|
162
179
|
this.closingLock = new Mutex();
|
180
|
+
this.connectionLock = new Mutex();
|
181
|
+
this.state = SignalConnectionState.DISCONNECTED;
|
163
182
|
}
|
164
183
|
|
165
184
|
async join(
|
@@ -170,7 +189,7 @@ export class SignalClient {
|
|
170
189
|
): Promise<JoinResponse> {
|
171
190
|
// during a full reconnect, we'd want to start the sequence even if currently
|
172
191
|
// connected
|
173
|
-
this.
|
192
|
+
this.state = SignalConnectionState.CONNECTING;
|
174
193
|
this.options = opts;
|
175
194
|
const res = await this.connect(url, token, opts, abortSignal);
|
176
195
|
return res as JoinResponse;
|
@@ -186,7 +205,7 @@ export class SignalClient {
|
|
186
205
|
log.warn('attempted to reconnect without signal options being set, ignoring');
|
187
206
|
return;
|
188
207
|
}
|
189
|
-
this.
|
208
|
+
this.state = SignalConnectionState.RECONNECTING;
|
190
209
|
// clear ping interval and restart it once reconnected
|
191
210
|
this.clearPingInterval();
|
192
211
|
|
@@ -215,127 +234,132 @@ export class SignalClient {
|
|
215
234
|
const params = createConnectionParams(token, clientInfo, opts);
|
216
235
|
|
217
236
|
return new Promise<JoinResponse | ReconnectResponse | void>(async (resolve, reject) => {
|
218
|
-
const
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
this.close();
|
226
|
-
reject(new ConnectionError('room connection has timed out (signal)'));
|
227
|
-
}, opts.websocketTimeout);
|
228
|
-
|
229
|
-
if (abortSignal?.aborted) {
|
230
|
-
abortHandler();
|
231
|
-
}
|
232
|
-
abortSignal?.addEventListener('abort', abortHandler);
|
233
|
-
log.debug(`connecting to ${url + params}`);
|
234
|
-
if (this.ws) {
|
235
|
-
await this.close();
|
236
|
-
}
|
237
|
-
this.ws = new WebSocket(url + params);
|
238
|
-
this.ws.binaryType = 'arraybuffer';
|
237
|
+
const unlock = await this.connectionLock.lock();
|
238
|
+
try {
|
239
|
+
const abortHandler = async () => {
|
240
|
+
this.close();
|
241
|
+
clearTimeout(wsTimeout);
|
242
|
+
reject(new ConnectionError('room connection has been cancelled (signal)'));
|
243
|
+
};
|
239
244
|
|
240
|
-
|
241
|
-
|
242
|
-
|
245
|
+
const wsTimeout = setTimeout(() => {
|
246
|
+
this.close();
|
247
|
+
reject(new ConnectionError('room connection has timed out (signal)'));
|
248
|
+
}, opts.websocketTimeout);
|
243
249
|
|
244
|
-
|
245
|
-
|
250
|
+
if (abortSignal?.aborted) {
|
251
|
+
abortHandler();
|
252
|
+
}
|
253
|
+
abortSignal?.addEventListener('abort', abortHandler);
|
254
|
+
log.debug(`connecting to ${url + params}`);
|
255
|
+
if (this.ws) {
|
256
|
+
await this.close();
|
257
|
+
}
|
258
|
+
this.ws = new WebSocket(url + params);
|
259
|
+
this.ws.binaryType = 'arraybuffer';
|
260
|
+
|
261
|
+
this.ws.onopen = () => {
|
246
262
|
clearTimeout(wsTimeout);
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
263
|
+
};
|
264
|
+
|
265
|
+
this.ws.onerror = async (ev: Event) => {
|
266
|
+
if (this.state !== SignalConnectionState.CONNECTED) {
|
267
|
+
clearTimeout(wsTimeout);
|
268
|
+
try {
|
269
|
+
const resp = await fetch(`http${url.substring(2)}/validate${params}`);
|
270
|
+
if (resp.status.toFixed(0).startsWith('4')) {
|
271
|
+
const msg = await resp.text();
|
272
|
+
reject(new ConnectionError(msg, ConnectionErrorReason.NotAllowed, resp.status));
|
273
|
+
} else {
|
274
|
+
reject(
|
275
|
+
new ConnectionError(
|
276
|
+
'Internal error',
|
277
|
+
ConnectionErrorReason.InternalError,
|
278
|
+
resp.status,
|
279
|
+
),
|
280
|
+
);
|
281
|
+
}
|
282
|
+
} catch (e) {
|
253
283
|
reject(
|
254
284
|
new ConnectionError(
|
255
|
-
'
|
256
|
-
ConnectionErrorReason.
|
257
|
-
resp.status,
|
285
|
+
'server was not reachable',
|
286
|
+
ConnectionErrorReason.ServerUnreachable,
|
258
287
|
),
|
259
288
|
);
|
260
289
|
}
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
290
|
+
return;
|
291
|
+
}
|
292
|
+
// other errors, handle
|
293
|
+
this.handleWSError(ev);
|
294
|
+
};
|
295
|
+
|
296
|
+
this.ws.onmessage = async (ev: MessageEvent) => {
|
297
|
+
// not considered connected until JoinResponse is received
|
298
|
+
let resp: SignalResponse;
|
299
|
+
if (typeof ev.data === 'string') {
|
300
|
+
const json = JSON.parse(ev.data);
|
301
|
+
resp = SignalResponse.fromJson(json);
|
302
|
+
} else if (ev.data instanceof ArrayBuffer) {
|
303
|
+
resp = SignalResponse.fromBinary(new Uint8Array(ev.data));
|
304
|
+
} else {
|
305
|
+
log.error(`could not decode websocket message: ${typeof ev.data}`);
|
306
|
+
return;
|
268
307
|
}
|
269
|
-
return;
|
270
|
-
}
|
271
|
-
// other errors, handle
|
272
|
-
this.handleWSError(ev);
|
273
|
-
};
|
274
|
-
|
275
|
-
this.ws.onmessage = async (ev: MessageEvent) => {
|
276
|
-
// not considered connected until JoinResponse is received
|
277
|
-
let resp: SignalResponse;
|
278
|
-
if (typeof ev.data === 'string') {
|
279
|
-
const json = JSON.parse(ev.data);
|
280
|
-
resp = SignalResponse.fromJson(json);
|
281
|
-
} else if (ev.data instanceof ArrayBuffer) {
|
282
|
-
resp = SignalResponse.fromBinary(new Uint8Array(ev.data));
|
283
|
-
} else {
|
284
|
-
log.error(`could not decode websocket message: ${typeof ev.data}`);
|
285
|
-
return;
|
286
|
-
}
|
287
308
|
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
309
|
+
if (this.state !== SignalConnectionState.CONNECTED) {
|
310
|
+
let shouldProcessMessage = false;
|
311
|
+
// handle join message only
|
312
|
+
if (resp.message?.case === 'join') {
|
313
|
+
this.state = SignalConnectionState.CONNECTED;
|
314
|
+
abortSignal?.removeEventListener('abort', abortHandler);
|
315
|
+
this.pingTimeoutDuration = resp.message.value.pingTimeout;
|
316
|
+
this.pingIntervalDuration = resp.message.value.pingInterval;
|
317
|
+
|
318
|
+
if (this.pingTimeoutDuration && this.pingTimeoutDuration > 0) {
|
319
|
+
log.debug('ping config', {
|
320
|
+
timeout: this.pingTimeoutDuration,
|
321
|
+
interval: this.pingIntervalDuration,
|
322
|
+
});
|
323
|
+
this.startPingInterval();
|
324
|
+
}
|
325
|
+
resolve(resp.message.value);
|
326
|
+
} else if (this.state === SignalConnectionState.RECONNECTING) {
|
327
|
+
// in reconnecting, any message received means signal reconnected
|
328
|
+
this.state = SignalConnectionState.CONNECTED;
|
329
|
+
abortSignal?.removeEventListener('abort', abortHandler);
|
302
330
|
this.startPingInterval();
|
331
|
+
if (resp.message?.case === 'reconnect') {
|
332
|
+
resolve(resp.message?.value);
|
333
|
+
} else {
|
334
|
+
resolve();
|
335
|
+
shouldProcessMessage = true;
|
336
|
+
}
|
337
|
+
} else if (!opts.reconnect) {
|
338
|
+
// non-reconnect case, should receive join response first
|
339
|
+
reject(
|
340
|
+
new ConnectionError(
|
341
|
+
`did not receive join response, got ${resp.message?.case} instead`,
|
342
|
+
),
|
343
|
+
);
|
303
344
|
}
|
304
|
-
|
305
|
-
|
306
|
-
// in reconnecting, any message received means signal reconnected
|
307
|
-
this.isConnected = true;
|
308
|
-
abortSignal?.removeEventListener('abort', abortHandler);
|
309
|
-
this.startPingInterval();
|
310
|
-
if (resp.message?.case === 'reconnect') {
|
311
|
-
resolve(resp.message?.value);
|
312
|
-
} else {
|
313
|
-
resolve();
|
314
|
-
shouldProcessMessage = true;
|
345
|
+
if (!shouldProcessMessage) {
|
346
|
+
return;
|
315
347
|
}
|
316
|
-
} else if (!opts.reconnect) {
|
317
|
-
// non-reconnect case, should receive join response first
|
318
|
-
reject(
|
319
|
-
new ConnectionError(
|
320
|
-
`did not receive join response, got ${resp.message?.case} instead`,
|
321
|
-
),
|
322
|
-
);
|
323
|
-
}
|
324
|
-
if (!shouldProcessMessage) {
|
325
|
-
return;
|
326
348
|
}
|
327
|
-
}
|
328
349
|
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
350
|
+
if (this.signalLatency) {
|
351
|
+
await sleep(this.signalLatency);
|
352
|
+
}
|
353
|
+
this.handleSignalResponse(resp);
|
354
|
+
};
|
355
|
+
|
356
|
+
this.ws.onclose = (ev: CloseEvent) => {
|
357
|
+
log.warn(`websocket closed`, { ev });
|
358
|
+
this.handleOnClose(ev.reason);
|
359
|
+
};
|
360
|
+
} finally {
|
361
|
+
unlock();
|
362
|
+
}
|
339
363
|
});
|
340
364
|
}
|
341
365
|
|
@@ -357,7 +381,7 @@ export class SignalClient {
|
|
357
381
|
async close() {
|
358
382
|
const unlock = await this.closingLock.lock();
|
359
383
|
try {
|
360
|
-
this.
|
384
|
+
this.state = SignalConnectionState.DISCONNECTING;
|
361
385
|
if (this.ws) {
|
362
386
|
this.ws.onmessage = null;
|
363
387
|
this.ws.onopen = null;
|
@@ -382,6 +406,7 @@ export class SignalClient {
|
|
382
406
|
this.ws = undefined;
|
383
407
|
}
|
384
408
|
} finally {
|
409
|
+
this.state = SignalConnectionState.DISCONNECTED;
|
385
410
|
this.clearPingInterval();
|
386
411
|
unlock();
|
387
412
|
}
|
@@ -522,7 +547,7 @@ export class SignalClient {
|
|
522
547
|
// capture all requests while reconnecting and put them in a queue
|
523
548
|
// unless the request originates from the queue, then don't enqueue again
|
524
549
|
const canQueue = !fromQueue && !canPassThroughQueue(message);
|
525
|
-
if (canQueue && this.
|
550
|
+
if (canQueue && this.state === SignalConnectionState.RECONNECTING) {
|
526
551
|
this.queuedRequests.push(async () => {
|
527
552
|
await this.sendRequest(message, true);
|
528
553
|
});
|
@@ -648,11 +673,10 @@ export class SignalClient {
|
|
648
673
|
this.requestQueue.run(req);
|
649
674
|
}
|
650
675
|
}
|
651
|
-
this.isReconnecting = false;
|
652
676
|
}
|
653
677
|
|
654
678
|
private async handleOnClose(reason: string) {
|
655
|
-
if (
|
679
|
+
if (this.state === SignalConnectionState.DISCONNECTED) return;
|
656
680
|
const onCloseCallback = this.onClose;
|
657
681
|
await this.close();
|
658
682
|
log.debug(`websocket connection closed: ${reason}`);
|
package/src/room/RTCEngine.ts
CHANGED
@@ -2,7 +2,11 @@ import { EventEmitter } from 'events';
|
|
2
2
|
import type { MediaAttributes } from 'sdp-transform';
|
3
3
|
import type TypedEventEmitter from 'typed-emitter';
|
4
4
|
import type { SignalOptions } from '../api/SignalClient';
|
5
|
-
import {
|
5
|
+
import {
|
6
|
+
SignalClient,
|
7
|
+
SignalConnectionState,
|
8
|
+
toProtoSessionDescription,
|
9
|
+
} from '../api/SignalClient';
|
6
10
|
import log from '../logger';
|
7
11
|
import type { InternalRoomOptions } from '../options';
|
8
12
|
import {
|
@@ -867,7 +871,7 @@ export default class RTCEngine extends (EventEmitter as new () => TypedEventEmit
|
|
867
871
|
log.info(`reconnecting, attempt: ${this.reconnectAttempts}`);
|
868
872
|
this.emit(EngineEvent.Restarting);
|
869
873
|
|
870
|
-
if (this.client.
|
874
|
+
if (!this.client.isDisconnected) {
|
871
875
|
await this.client.sendLeave();
|
872
876
|
}
|
873
877
|
await this.cleanupPeerConnections();
|
@@ -1266,7 +1270,7 @@ export default class RTCEngine extends (EventEmitter as new () => TypedEventEmit
|
|
1266
1270
|
|
1267
1271
|
private handleBrowserOnLine = () => {
|
1268
1272
|
// in case the engine is currently reconnecting, attempt a reconnect immediately after the browser state has changed to 'onLine'
|
1269
|
-
if (this.client.
|
1273
|
+
if (this.client.currentState === SignalConnectionState.RECONNECTING) {
|
1270
1274
|
this.clearReconnectTimeout();
|
1271
1275
|
this.attemptReconnect(ReconnectReason.RR_SIGNAL_DISCONNECTED);
|
1272
1276
|
}
|
package/src/room/Room.ts
CHANGED
@@ -664,7 +664,7 @@ class Room extends (EventEmitter as new () => TypedEmitter<RoomEventCallbacks>)
|
|
664
664
|
this.connectFuture = undefined;
|
665
665
|
}
|
666
666
|
// send leave
|
667
|
-
if (this.engine?.client.
|
667
|
+
if (!this.engine?.client.isDisconnected) {
|
668
668
|
await this.engine.client.sendLeave();
|
669
669
|
}
|
670
670
|
// close engine (also closes client)
|
@@ -835,6 +835,11 @@ export default class LocalParticipant extends Participant {
|
|
835
835
|
videoCodec: BackupVideoCodec,
|
836
836
|
options?: TrackPublishOptions,
|
837
837
|
) {
|
838
|
+
// TODO remove once e2ee is supported for backup tracks
|
839
|
+
if (this.encryptionType !== Encryption_Type.NONE) {
|
840
|
+
return;
|
841
|
+
}
|
842
|
+
|
838
843
|
// is it not published? if so skip
|
839
844
|
let existingPublication: LocalTrackPublication | undefined;
|
840
845
|
this.tracks.forEach((publication) => {
|
@@ -1124,7 +1129,7 @@ export default class LocalParticipant extends Participant {
|
|
1124
1129
|
) {
|
1125
1130
|
this.participantTrackPermissions = participantTrackPermissions;
|
1126
1131
|
this.allParticipantsAllowedToSubscribe = allParticipantsAllowed;
|
1127
|
-
if (this.engine.client.
|
1132
|
+
if (!this.engine.client.isDisconnected) {
|
1128
1133
|
this.updateTrackSubscriptionPermissions();
|
1129
1134
|
}
|
1130
1135
|
}
|
package/src/room/utils.ts
CHANGED
@@ -47,6 +47,10 @@ export function supportsAV1(): boolean {
|
|
47
47
|
if (!('getCapabilities' in RTCRtpSender)) {
|
48
48
|
return false;
|
49
49
|
}
|
50
|
+
if (isSafari()) {
|
51
|
+
// Safari 17 on iPhone14 reports AV1 capability, but does not actually support it
|
52
|
+
return false;
|
53
|
+
}
|
50
54
|
const capabilities = RTCRtpSender.getCapabilities('video');
|
51
55
|
let hasAV1 = false;
|
52
56
|
if (capabilities) {
|
@@ -69,6 +73,13 @@ export function supportsVP9(): boolean {
|
|
69
73
|
// https://bugzilla.mozilla.org/show_bug.cgi?id=1633876
|
70
74
|
return false;
|
71
75
|
}
|
76
|
+
if (isSafari()) {
|
77
|
+
const browser = getBrowser();
|
78
|
+
if (browser?.version && compareVersions(browser.version, '16') < 0) {
|
79
|
+
// Safari 16 and below does not support VP9
|
80
|
+
return false;
|
81
|
+
}
|
82
|
+
}
|
72
83
|
const capabilities = RTCRtpSender.getCapabilities('video');
|
73
84
|
let hasVP9 = false;
|
74
85
|
if (capabilities) {
|