close method
Closes the channel. Idempotent.
Implementation
@override
Future<void> close() async {
if (_closed) return;
_closed = true;
_current = ConnectionState.disconnected;
if (!_state.isClosed) await _state.close();
if (!_incoming.isClosed) await _incoming.close();
}