public void LoadClientListener(IClientCallback cb)
        {
            new Thread(t =>
            {
                factory = new ConnectionFactory()
                {
                    HostName = "localhost"
                };
                using (var connection = factory.CreateConnection())
                    using (var channel = connection.CreateModel())
                    {
                        channel.QueueDeclare(queue: clientQueue, durable: false, exclusive: false, autoDelete: false, arguments: null);
                        var consumer       = new EventingBasicConsumer(channel);
                        consumer.Received += (model, ea) =>
                        {
                            var body    = ea.Body;
                            var message = Encoding.UTF8.GetString(body);
                            Debug.WriteLine(" [x] Received On Client: " + message);
                            Response r = JObject.Parse(message).ToObject <Response>();
                            new Task(new Action(() => { cb.Handle(r); })).Start();
                        };
                        channel.BasicConsume(queue: clientQueue, noAck: true, consumer: consumer);

                        while (true)
                        {
                        }
                    }
            }
                       ).Start();
        }
        public void LoadClientListener(IClientCallback cb)
        {
            new Thread(t =>
              {
            factory = new ConnectionFactory() { HostName = "localhost" };
            using (var connection = factory.CreateConnection())
            using (var channel = connection.CreateModel())
            {
              channel.QueueDeclare(queue: clientQueue, durable: false, exclusive: false, autoDelete: false, arguments: null);
              var consumer = new EventingBasicConsumer(channel);
              consumer.Received += (model, ea) =>
              {
            var body = ea.Body;
            var message = Encoding.UTF8.GetString(body);
            Debug.WriteLine(" [x] Received On Client: " + message);
            Response r = JObject.Parse(message).ToObject<Response>();
            new Task(new Action(() => { cb.Handle(r); })).Start();
              };
              channel.BasicConsume(queue: clientQueue, noAck: true, consumer: consumer);

              while (true) { }
            }
              }
              ).Start();
        }