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