dispose method

  1. @override
Future<void> dispose()
override

Dispose the server

Implementation

@override
Future<void> dispose() async {
  await stop();
  unawaited(_serverEventController.close());

  for (final plugin in plugins) {
    plugin.dispose();
  }

  final documentIds = await _serverRegistry.documentIds;

  // Free the document registry resources
  for (final documentId in documentIds) {
    try {
      final document = await _serverRegistry.getDocument(documentId);
      if (document != null) {
        document.dispose();
      }
    } catch (e) {
      _addServerEvent(
        ServerEvent(
          type: ServerEventType.error,
          message: 'Error disposing document: $e',
          data: {
            'documentId': documentId,
          },
        ),
      );
    }
  }
}