close method

Future<void> close({
  1. bool force = false,
})

Closes the underlying HTTP server.

Implementation

Future<void> close({bool force = false}) async {
  if (_closed) return;
  _closed = true;
  await _subscription.cancel();
  await server.close(force: force);

  if (_activeRequests.isNotEmpty) {
    await Future.wait(
      _activeRequests.toList(growable: false),
      eagerError: false,
    );
  }

  if (force) {
    await Future.wait(
      _activeSockets.toList(growable: false).map((socket) => socket.close()),
      eagerError: false,
    );
  }

  if (_activeSessions.isNotEmpty) {
    await Future.wait(
      _activeSessions.toList(growable: false),
      eagerError: false,
    );
  }
}