start method
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);
}