connect method

Future<void> connect()

Establishes a WebSocket connection with automatic reconnection support

Implementation

Future<void> connect() async {
  if (_disposed) {
    throw StateError('WebSocketClient has been disposed');
  }

  _log('Attempting to connect to ${config.url}');

  try {
    await _adapter.connect();
    _log('Successfully connected to ${config.url}');

    // Reset reconnection manager on successful connection
    _reconnectionManager.reset();

    // Start heartbeat if enabled
    if (config.enableHeartbeat) {
      _heartbeatManager.start();
    }

    _publishStats();
  } catch (error) {
    _log('Failed to connect: $error');

    if (config.autoReconnect) {
      _reconnectionManager.startReconnection();
    }
    rethrow;
  }
}