livekit-client 1.15.1 → 1.15.3
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.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 +142 -124
- 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 +12 -2
- 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":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAEL,eAAe,EAEf,eAAe,EACf,qBAAqB,EAEtB,MAAM,+BAA+B,CAAC;AAQvC,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAK1C,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,qBAAqB,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAQ1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEnD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAE/E,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAOpD,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,WAAW;IACvD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAEhD,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAEhD,+CAA+C;IAC/C,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAE3C,gBAAgB;IAChB,MAAM,EAAE,SAAS,CAAC;IAElB,gBAAgB;IAChB,eAAe,EAAE,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAE9C,OAAO,CAAC,iBAAiB,CAA2B;IAEpD,OAAO,CAAC,sBAAsB,CAAyD;IAEvF,OAAO,CAAC,WAAW,CAAoB;IAEvC,OAAO,CAAC,eAAe,CAAoB;IAE3C,OAAO,CAAC,2BAA2B,CAAyC;IAE5E,OAAO,CAAC,iCAAiC,CAAiB;IAG1D,OAAO,CAAC,WAAW,CAAsB;IAEzC,OAAO,CAAC,cAAc,CAAyC;IAE/D,OAAO,CAAC,eAAe,CAAC,CAAe;IAEvC,gBAAgB;gBACJ,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB;IAW1F,IAAI,eAAe,IAAI,KAAK,GAAG,SAAS,CAEvC;IAED,IAAI,mBAAmB,IAAI,KAAK,GAAG,SAAS,CAE3C;IAED,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAOjE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAO/D;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,SAAS;IA2B7B,OAAO,CAAC,kBAAkB,CAIxB;IAEF,OAAO,CAAC,iBAAiB,CAIvB;IAEF,OAAO,CAAC,kBAAkB,CAMxB;IAEF;;;;;;OAMG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC;;;;;;OAMG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B;;;;;OAKG;IACH,gBAAgB,CACd,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,mBAAmB,EAC7B,cAAc,CAAC,EAAE,mBAAmB,GACnC,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAI7C;;;;;OAKG;IACH,oBAAoB,CAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,mBAAmB,EAC7B,cAAc,CAAC,EAAE,mBAAmB,GACnC,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAI7C;;;OAGG;IACH,qBAAqB,CACnB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,yBAAyB,EACnC,cAAc,CAAC,EAAE,mBAAmB,GACnC,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAI7C,gBAAgB;IAChB,cAAc,CAAC,WAAW,EAAE,qBAAqB,GAAG,OAAO;IAS3D,gBAAgB;IACV,cAAc,CAAC,OAAO,EAAE,OAAO;IAKrC;;;;OAIG;YACW,eAAe;IA8F7B;;;OAGG;IACG,yBAAyB;IAwB/B;;;;OAIG;IACG,YAAY,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAsD7E;;;;OAIG;IACG,kBAAkB,CAAC,OAAO,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAiCzF;;;;OAIG;IACG,YAAY,CAChB,KAAK,EAAE,UAAU,GAAG,gBAAgB,EACpC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;YAkHnB,OAAO;
|
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)
|
@@ -693,7 +693,12 @@ export default class LocalParticipant extends Participant {
|
|
693
693
|
if (opts.backupCodec === true) {
|
694
694
|
opts.backupCodec = { codec: defaultVideoCodec };
|
695
695
|
}
|
696
|
-
if (
|
696
|
+
if (
|
697
|
+
opts.backupCodec &&
|
698
|
+
videoCodec !== opts.backupCodec.codec &&
|
699
|
+
// TODO remove this once e2ee is supported for backup codecs
|
700
|
+
req.encryption === Encryption_Type.NONE
|
701
|
+
) {
|
697
702
|
// multi-codec simulcast requires dynacast
|
698
703
|
if (!this.roomOptions.dynacast) {
|
699
704
|
this.roomOptions.dynacast = true;
|
@@ -830,6 +835,11 @@ export default class LocalParticipant extends Participant {
|
|
830
835
|
videoCodec: BackupVideoCodec,
|
831
836
|
options?: TrackPublishOptions,
|
832
837
|
) {
|
838
|
+
// TODO remove once e2ee is supported for backup tracks
|
839
|
+
if (this.encryptionType !== Encryption_Type.NONE) {
|
840
|
+
return;
|
841
|
+
}
|
842
|
+
|
833
843
|
// is it not published? if so skip
|
834
844
|
let existingPublication: LocalTrackPublication | undefined;
|
835
845
|
this.tracks.forEach((publication) => {
|
@@ -1119,7 +1129,7 @@ export default class LocalParticipant extends Participant {
|
|
1119
1129
|
) {
|
1120
1130
|
this.participantTrackPermissions = participantTrackPermissions;
|
1121
1131
|
this.allParticipantsAllowedToSubscribe = allParticipantsAllowed;
|
1122
|
-
if (this.engine.client.
|
1132
|
+
if (!this.engine.client.isDisconnected) {
|
1123
1133
|
this.updateTrackSubscriptionPermissions();
|
1124
1134
|
}
|
1125
1135
|
}
|