fix: Correctly throws final error when connection fails. (#214)

* fix: Correctly throws final error when connection fails.

* update.

* update.
This commit is contained in:
CloudWebRTC
2022-12-05 08:51:44 +08:00
committed by GitHub
parent 06783cad5c
commit 833fd658b2
2 changed files with 7 additions and 8 deletions
+6 -7
View File
@@ -90,6 +90,7 @@ class SignalClient extends Disposable with EventsEmittable<SignalEvent> {
_updateConnectionState(ConnectionState.connected); _updateConnectionState(ConnectionState.connected);
} catch (socketError) { } catch (socketError) {
// Attempt Validation // Attempt Validation
var finalError = socketError;
try { try {
// Skip validation if reconnect mode // Skip validation if reconnect mode
if (reconnect) rethrow; if (reconnect) rethrow;
@@ -106,17 +107,15 @@ class SignalClient extends Disposable with EventsEmittable<SignalEvent> {
final validateResponse = await http.get(validateUri); final validateResponse = await http.get(validateUri);
if (validateResponse.statusCode != 200) { if (validateResponse.statusCode != 200) {
throw ConnectException(validateResponse.body); finalError = ConnectException(validateResponse.body);
} }
throw ConnectException();
} catch (error) { } catch (error) {
// Pass it up if it's already a `ConnectError` if (socketError.runtimeType != error.runtimeType) {
if (error is ConnectException) rethrow; finalError = error;
// HTTP doesn't work either }
throw ConnectException();
} finally { } finally {
_updateConnectionState(ConnectionState.disconnected); _updateConnectionState(ConnectionState.disconnected);
rethrow; throw finalError;
} }
} }
} }
+1 -1
View File
@@ -4,7 +4,7 @@ abstract class LiveKitException implements Exception {
const LiveKitException._(this.message); const LiveKitException._(this.message);
@override @override
String toString() => 'LiveKit Exception $runtimeType $message'; String toString() => 'LiveKit Exception: [$runtimeType] $message';
} }
/// An exception occured while attempting to connect. /// An exception occured while attempting to connect.