shutdown method
Disconnects and stops the node. No further reconnection is attempted.
Implementation
Future<void> shutdown() async {
_stopped = true;
_heartbeatTimer?.cancel();
_cleanupTimer?.cancel();
_cleanupTimer = null;
for (final session in _sessions.values.toList()) {
await session.dispose();
}
_sessions.clear();
await _detached.disposeAll();
await _controlSub?.cancel();
await _mux?.dispose();
await _connection?.close();
_connection = null;
_mux = null;
_setState(NodeState.stopped);
}