refactoring
This commit is contained in:
@@ -284,14 +284,18 @@ class WebSocketService {
|
||||
void _onError(dynamic error) {
|
||||
AppLogger.error('WebSocket error', error: error);
|
||||
_isConnected = false;
|
||||
_stopHeartbeat();
|
||||
_channel = null;
|
||||
_connectionStatusController.add(false);
|
||||
_scheduleReconnect();
|
||||
}
|
||||
|
||||
/// Gestion de la fermeture de connexion
|
||||
void _onDone() {
|
||||
if (!_isConnected) return; // Déjà traité par _onError
|
||||
AppLogger.info('WebSocket connexion fermée');
|
||||
_isConnected = false;
|
||||
_channel = null;
|
||||
_connectionStatusController.add(false);
|
||||
_stopHeartbeat();
|
||||
_scheduleReconnect();
|
||||
@@ -303,6 +307,10 @@ class WebSocketService {
|
||||
return;
|
||||
}
|
||||
|
||||
if (_reconnectTimer != null) {
|
||||
return; // Reconnexion déjà planifiée
|
||||
}
|
||||
|
||||
_stopReconnectTimer();
|
||||
|
||||
// Backoff exponentiel : 2^attempts secondes (max 60s)
|
||||
@@ -312,6 +320,7 @@ class WebSocketService {
|
||||
AppLogger.info('⏳ Reconnexion WebSocket dans ${delaySeconds}s (tentative $_reconnectAttempts)');
|
||||
|
||||
_reconnectTimer = Timer(Duration(seconds: delaySeconds), () {
|
||||
_channel = null;
|
||||
AppLogger.info('🔄 Tentative de reconnexion WebSocket...');
|
||||
connect();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user