stop method

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

Stop the server

Implementation

@override
Future<void> stop() async {
  if (!_isRunning) {
    return;
  }

  _isRunning = false;

  // Gracefully close every session. Guard each close so one failing
  // session does not prevent the others (and the server socket) from
  // being torn down.
  await Future.forEach(
    List.of(_sessions.values),
    (ClientSession session) => tryCatchIgnore(session.close),
  );

  _sessions.clear();

  await _server?.close();
  _server = null;

  _addServerEvent(
    const ServerEvent(
      type: ServerEventType.stopped,
      message: 'Server stopped',
    ),
  );
}