start method
Start the client (enables auto-retrieval if configured)
Implementation
Future<void> start() async {
if (_isStarted) {
_logger.warning('Client already started');
return;
}
_logger.info('Starting S&F client');
_logger.info('Peer ID: ${host.id}');
_logger.info('Preferred servers: ${config.preferredServers.length}');
// Register private mailbox notification handler (direct P2P stream)
registerPrivateNotificationHandler();
// Initialize presence tracker if PubSub is available
if (pubsub != null) {
_presenceTracker = PresenceTracker(
pubsub: pubsub!,
localPeerId: host.id,
);
print('[SFClient] ✅ DIAG: PresenceTracker created with PubSub (${pubsub.runtimeType})');
} else {
print('[SFClient] ⚠️ DIAG: PubSub is NULL — PresenceTracker NOT created');
}
if (config.enableAutoRetrieval) {
startAutoRetrieval();
}
_isStarted = true;
}