abort method
Resets the stream, so the client sees it fail.
Implementation
@override
Future<void> abort(Object error, [StackTrace? stackTrace]) async {
if (_isDetached || _isClosed) return;
_isClosed = true;
stream.terminate();
await super.close();
}