disconnectSession method

void disconnectSession(
  1. String sessionId
)

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');
  }
}