public void RemoveConnection(ConnectionBase connection) { Guid connectionId = connection.Id; connections.TryRemove(connectionId, out _); connection.Dispose(); }
public void RemoveConnection(ConnectionBase connection) { Guid connectionId = connection.Id; connections = new ConcurrentBag <ConnectionBase>(connections.Where(c => c.Id != connectionId)); connection.Dispose(); }
public void RemoveConnection(ConnectionBase connection) { try { connectionsLock.EnterWriteLock(); Guid connectionId = connection.Id; connections.Remove(connectionId); subscriptionManager.RemoveConnectionSubscriptions(connectionId); messageSubscriptionManager.RemoveConnectionSubscriptions(connectionId); connection.Dispose(); logger.LogInformation("Removed {ConnectionType} with ConnectionId {SapphireConnectionId}", connection, connection.Id); logger.LogDebug("Connection count: {ConnectionCount}", connections.Count); } finally { connectionsLock.ExitWriteLock(); } }