public void Disconnect(Connection connection) { Logger.Info($"Diconnect: {connection.Url}"); if (ConnectionsByName.TryGetValue(connection, out var conn)) { conn.Close(); connection.Status = ConnectionStatus.Disconnected; ConnectionsByName.Remove(connection); Disconnected?.Invoke(connection); } }
public IConnection Connect(Connection connection) { if (ConnectionsByName.TryGetValue(connection, out var conn)) { return(conn); } Logger.Info($"Connect: {connection.Url}"); conn = Factory.CreateConnection(connection.Url); connection.Status = ConnectionStatus.Connected; ConnectionsByName[connection] = conn; Connected?.Invoke(connection); return(conn); }
public void Close() { foreach (List <IAsyncSubscription> subscriptions in Subscriptions.Values) { foreach (var subscription in subscriptions) { subscription.Unsubscribe(); } } foreach (var connection in ConnectionsByName.Values) { connection.Close(); } Subscriptions.Clear(); ConnectionsByName.Clear(); }