connect method

  1. @override
Future<void> connect()
override

Establishes a WebSocket connection

Implementation

@override
Future<void> connect() async {
  if (_disposed) return;
  if (_currentState == WebSocketState.connecting ||
      _currentState == WebSocketState.connected) {
    return;
  }

  _updateState(WebSocketState.connecting);

  if (_connectionDelay > Duration.zero) {
    await Future.delayed(_connectionDelay);
  }

  if (_shouldFailConnection) {
    _updateState(WebSocketState.error);
    final error = Exception('Mock connection failure');
    if (!_disposed) _errorController.add(error);
    throw error;
  }

  _updateState(WebSocketState.connected);

  if (_simulateUnstableConnection) {
    _startInstabilitySimulation();
  }
}