start method
Inicia el controlador de eventos
Implementation
Future<void> start() async {
if (_isStarted) return;
try {
// IdManager should already be initialized by the SDK, but verify for safety
if (!idManager.isInitialized) {
await idManager.initialize();
}
// Load configuration for automatic sending
_loadSendingConfiguration();
// Initialize rate limit controller
_initializeRateLimit();
// Configure automatic sending timer
_startPeriodicSending();
// Listen to session events to flush before changes
_sessionSubscription = SessionController.instance.onSessionEvent.listen(
_handleSessionEvent,
);
_isStarted = true;
ObslyLogger.debug('EventController started with session: ${idManager.getSessionId()}, '
'messengerInterval: ${_messengerIntervalSeconds}s, bufferSize: $_bufferSize');
} catch (e, stackTrace) {
ObslyLogger.error('Failed to start EventController: $e', e, stackTrace);
rethrow;
}
}