@@ -6,6 +6,7 @@ import * as fakeParameters from "mediasoup-client/lib/test/fakeParameters";
66import * as auth from "#src/services/auth" ;
77import * as http from "#src/services/http" ;
88import * as resources from "#src/services/resources" ;
9+ import { Deferred } from "#src/utils/utils" ;
910import { SfuClient , SfuClientState } from "#src/client" ;
1011import { Channel } from "#src/models/channel" ;
1112import type { Session } from "#src/models/session" ;
@@ -38,7 +39,7 @@ interface ConnectionResult {
3839 /** Client-side SFU client instance */
3940 sfuClient : SfuClient ;
4041 /** Promise resolving to true when client is connected */
41- isConnected : Promise < boolean > ;
42+ isConnected : Deferred < boolean > ;
4243}
4344
4445/**
@@ -149,39 +150,37 @@ export class LocalNetwork {
149150 } ;
150151
151152 // Set up authentication promise
152- const isClientAuthenticated = new Promise < boolean > ( ( resolve , reject ) => {
153- const handleStateChange = ( event : CustomEvent ) => {
154- const { state } = event . detail ;
155- switch ( state ) {
156- case SfuClientState . AUTHENTICATED :
157- sfuClient . removeEventListener (
158- "stateChange" ,
159- handleStateChange as EventListener
160- ) ;
161- resolve ( true ) ;
162- break ;
163- case SfuClientState . CLOSED :
164- sfuClient . removeEventListener (
165- "stateChange" ,
166- handleStateChange as EventListener
167- ) ;
168- reject ( new Error ( "client closed" ) ) ;
169- break ;
170- }
171- } ;
172- sfuClient . addEventListener ( "stateChange" , handleStateChange as EventListener ) ;
173- } ) ;
174-
175- const isConnected = new Promise < boolean > ( ( resolve , reject ) => {
176- const connectedHandler = ( event : CustomEvent ) => {
177- const { state } = event . detail ;
178- if ( state === SfuClientState . CONNECTED ) {
179- sfuClient . removeEventListener ( "stateChange" , connectedHandler as EventListener ) ;
180- resolve ( true ) ;
181- }
182- } ;
183- sfuClient . addEventListener ( "stateChange" , connectedHandler as EventListener ) ;
184- } ) ;
153+ const isClientAuthenticated = new Deferred < boolean > ( ) ;
154+ const handleStateChange = ( event : CustomEvent ) => {
155+ const { state } = event . detail ;
156+ switch ( state ) {
157+ case SfuClientState . AUTHENTICATED :
158+ sfuClient . removeEventListener (
159+ "stateChange" ,
160+ handleStateChange as EventListener
161+ ) ;
162+ isClientAuthenticated . resolve ( true ) ;
163+ break ;
164+ case SfuClientState . CLOSED :
165+ sfuClient . removeEventListener (
166+ "stateChange" ,
167+ handleStateChange as EventListener
168+ ) ;
169+ isClientAuthenticated . reject ( new Error ( "client closed" ) ) ;
170+ break ;
171+ }
172+ } ;
173+ sfuClient . addEventListener ( "stateChange" , handleStateChange as EventListener ) ;
174+
175+ const isConnected = new Deferred < boolean > ( ) ;
176+ const connectedHandler = ( event : CustomEvent ) => {
177+ const { state } = event . detail ;
178+ if ( state === SfuClientState . CONNECTED ) {
179+ sfuClient . removeEventListener ( "stateChange" , connectedHandler as EventListener ) ;
180+ isConnected . resolve ( true ) ;
181+ }
182+ } ;
183+ sfuClient . addEventListener ( "stateChange" , connectedHandler as EventListener ) ;
185184
186185 // Start connection
187186 sfuClient . connect (
0 commit comments