start method

Future<void> start()

Start real-time sync

Implementation

Future<void> start() async {
  _logger.info('Starting real-time sync');

  // Connect to WebSocket
  await _websocketService.connect();

  // Listen to connection state changes
  _stateSubscription = _websocketService.onStateChanged.listen((state) {
    _logger.info('WebSocket state changed: $state');

    if (state == WebSocketState.connected) {
      // Subscribe to all collections
      for (final collection in _collections) {
        _websocketService.subscribe(collection);
        _logger.info('Subscribed to real-time updates: $collection');
      }

      _eventController.add(SyncEvent(
        type: SyncEventType.realtimeConnected,
        metadata: {'collections': _collections},
      ));
    } else if (state == WebSocketState.disconnected ||
        state == WebSocketState.error) {
      _eventController.add(SyncEvent(
        type: SyncEventType.realtimeDisconnected,
        metadata: {'state': state.name},
      ));
    }
  });

  // Listen to incoming messages
  _messageSubscription = _websocketService.onMessage.listen(_handleMessage);
}