disconnectSession method
Disconnect a specific session
Implementation
void disconnectSession(String sessionId) {
final session = _sessions[sessionId];
if (session != null) {
// Clean up session resources
_sessions.remove(sessionId);
// Cancel all pending operations for this session
final operationsToCancel = _pendingOperations.values
.where((op) => op.sessionId == sessionId)
.toList();
for (final operation in operationsToCancel) {
cancelOperation(operation.id);
}
// Close the transport if it has a close method
try {
if (session.transport != null) {
(session.transport as dynamic).close();
}
} catch (e) {
_logger.error('Error closing transport for session $sessionId: $e');
}
_logger.info('Disconnected session: $sessionId');
}
}