@@ -265,55 +265,51 @@ impl SignalInner {
265265 // For initial connection: reconnect=false, reconnect_reason=None, participant_sid=""
266266 let lk_url = get_livekit_url ( url, & options, use_v1_path, false , None , "" ) ?;
267267 // Try to connect to the SignalClient
268- let ( stream, mut events, single_pc_mode_active) = match SignalStream :: connect (
269- lk_url. clone ( ) ,
270- token,
271- )
272- . await
273- {
274- Ok ( ( new_stream, stream_events) ) => {
275- log:: debug!(
276- "signal connection successful: path={}, single_pc_mode={}" ,
277- if use_v1_path { "v1" } else { "v0" } ,
278- use_v1_path
279- ) ;
280- ( new_stream, stream_events, use_v1_path)
281- }
282- Err ( err) => {
283- log:: warn!(
284- "signal connection failed on {} path: {:?}" ,
285- if use_v1_path { "v1" } else { "v0" } ,
286- err
287- ) ;
288-
289- if let SignalError :: TokenFormat = err {
290- return Err ( err) ;
268+ let ( stream, mut events, single_pc_mode_active) =
269+ match SignalStream :: connect ( lk_url. clone ( ) , token) . await {
270+ Ok ( ( new_stream, stream_events) ) => {
271+ log:: debug!(
272+ "signal connection successful: path={}, single_pc_mode={}" ,
273+ if use_v1_path { "v1" } else { "v0" } ,
274+ use_v1_path
275+ ) ;
276+ ( new_stream, stream_events, use_v1_path)
291277 }
278+ Err ( err) => {
279+ log:: warn!(
280+ "signal connection failed on {} path: {:?}" ,
281+ if use_v1_path { "v1" } else { "v0" } ,
282+ err
283+ ) ;
284+
285+ if let SignalError :: TokenFormat = err {
286+ return Err ( err) ;
287+ }
292288
293- // If using v1 path and it failed, always try fallback to v0 path.
294- // The v1 endpoint might not be available on older servers, and errors
295- // can manifest as various HTTP status codes (404, 401, 403) or connection errors.
296- if use_v1_path {
297- let lk_url_v0 = get_livekit_url ( url, & options, false , false , None , "" ) ?;
298- log:: warn!( "v1 path failed, falling back to v0 path" ) ;
299- match SignalStream :: connect ( lk_url_v0. clone ( ) , token) . await {
300- Ok ( ( new_stream, stream_events) ) => ( new_stream, stream_events, false ) ,
301- Err ( err) => {
302- log:: error!( "v0 fallback also failed: {:?}" , err) ;
303- if let SignalError :: TokenFormat = err {
289+ // If using v1 path and it failed, always try fallback to v0 path.
290+ // The v1 endpoint might not be available on older servers, and errors
291+ // can manifest as various HTTP status codes (404, 401, 403) or connection errors.
292+ if use_v1_path {
293+ let lk_url_v0 = get_livekit_url ( url, & options, false , false , None , "" ) ?;
294+ log:: warn!( "v1 path failed, falling back to v0 path" ) ;
295+ match SignalStream :: connect ( lk_url_v0. clone ( ) , token) . await {
296+ Ok ( ( new_stream, stream_events) ) => ( new_stream, stream_events, false ) ,
297+ Err ( err) => {
298+ log:: error!( "v0 fallback also failed: {:?}" , err) ;
299+ if let SignalError :: TokenFormat = err {
300+ return Err ( err) ;
301+ }
302+ Self :: validate ( lk_url_v0) . await ?;
304303 return Err ( err) ;
305304 }
306- Self :: validate ( lk_url_v0) . await ?;
307- return Err ( err) ;
308305 }
306+ } else {
307+ // Connection failed on v0 path, try to retrieve more information
308+ Self :: validate ( lk_url) . await ?;
309+ return Err ( err) ;
309310 }
310- } else {
311- // Connection failed on v0 path, try to retrieve more information
312- Self :: validate ( lk_url) . await ?;
313- return Err ( err) ;
314311 }
315- }
316- } ;
312+ } ;
317313
318314 let join_response = get_join_response ( & mut events) . await ?;
319315
@@ -570,10 +566,8 @@ fn create_join_request_param(
570566 let join_request_bytes = join_request. encode_to_vec ( ) ;
571567
572568 // Create WrappedJoinRequest (JS doesn't explicitly set compression, so default is NONE)
573- let wrapped_join_request = proto:: WrappedJoinRequest {
574- join_request : join_request_bytes,
575- ..Default :: default ( )
576- } ;
569+ let wrapped_join_request =
570+ proto:: WrappedJoinRequest { join_request : join_request_bytes, ..Default :: default ( ) } ;
577571
578572 // Serialize WrappedJoinRequest to bytes and base64 encode
579573 let wrapped_bytes = wrapped_join_request. encode_to_vec ( ) ;
@@ -710,21 +704,15 @@ mod tests {
710704 "wss"
711705 ) ;
712706 assert_eq ! (
713- get_livekit_url( "http://localhost:7880" , & io, false , false , None , "" )
714- . unwrap( )
715- . scheme( ) ,
707+ get_livekit_url( "http://localhost:7880" , & io, false , false , None , "" ) . unwrap( ) . scheme( ) ,
716708 "ws"
717709 ) ;
718710 assert_eq ! (
719- get_livekit_url( "wss://localhost:7880" , & io, false , false , None , "" )
720- . unwrap( )
721- . scheme( ) ,
711+ get_livekit_url( "wss://localhost:7880" , & io, false , false , None , "" ) . unwrap( ) . scheme( ) ,
722712 "wss"
723713 ) ;
724714 assert_eq ! (
725- get_livekit_url( "ws://localhost:7880" , & io, false , false , None , "" )
726- . unwrap( )
727- . scheme( ) ,
715+ get_livekit_url( "ws://localhost:7880" , & io, false , false , None , "" ) . unwrap( ) . scheme( ) ,
728716 "ws"
729717 ) ;
730718 assert ! ( get_livekit_url( "ftp://localhost:7880" , & io, false , false , None , "" ) . is_err( ) ) ;
0 commit comments