close method

Future<void> close()

Closes sockets with code 1001 and releases every connection.

Implementation

Future<void> close() {
  final Future<void>? existing = _closeFuture;
  if (existing != null) {
    return existing;
  }
  _isClosed = true;
  final completer = Completer<void>();
  _closeFuture = completer.future;
  unawaited(
    Future<void>.sync(_runClose).then<void>(
      (_) => completer.complete(),
      onError: (Object error, StackTrace stackTrace) =>
          completer.completeError(error, stackTrace),
    ),
  );
  return completer.future;
}