disconnect method
Gracefully closes the connection.
Implementation
@override
Future<void> disconnect() async {
_setStatus(ChannelStatus.disconnecting);
await _connectedSub?.cancel();
await _childSub?.cancel();
_connectedSub = null;
_childSub = null;
_setStatus(ChannelStatus.disconnected);
}