Пример #1
0
 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);
     }
 }
Пример #2
0
        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);
        }
Пример #3
0
        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();
        }