Example #1
0
        public void ReceiveStructureMainQueueTest()
        {
            ReceiverSubscribeCallback callback = (message) => {
                Console.WriteLine(string.Format("Message received: \"{0}\"", message));
                JObject messageObj      = (JObject)JsonConvert.DeserializeObject(message);
                string  action          = messageObj.GetValue("Action").ToObject <string>();
                var     messageConcrete = messageObj.GetValue("MessageData").ToObject <MessageDataConcrete>();
                return(false);
            };

            Factory.Receiver.subscribe(callback);
        }
Example #2
0
        public void ReceiveMainQueueTest()
        {
            ReceiverSubscribeCallback callback = (message) => {
                Console.WriteLine(string.Format("Message received: \"{0}\"", message));
                return(true);
            };

            Factory.Receiver.subscribe(callback);

            Assert.Throws <DuplicateSubscriberException>(() => {
                Factory.Receiver.subscribe(callback);
            });
        }
Example #3
0
        public void ReceiveCustomExchangeTest()
        {
            ReceiverSubscribeCallback callback = (message) => {
                Console.WriteLine(string.Format("Callback Message received: \"{0}\"", message));
                return(true);
            };

            Factory.GetReceiverCustomExchange("customExchange1").subscribe(callback);

            Assert.Throws <DuplicateSubscriberException>(() => {
                Factory.GetReceiverCustomExchange("customExchange1").subscribe(callback);
            });

            Factory.GetReceiverCustomExchange("customExchange2").subscribe(callback);
        }
Example #4
0
 public override void subscribe(ReceiverSubscribeCallback callback)
 {
     if (!listening)
     {
         var consumer = new EventingBasicConsumer(channel);
         consumer.Received += (model, ea) => {
             var body    = ea.Body;
             var message = Encoding.UTF8.GetString(body);
             var result  = callback(message);
             if (result)
             {
                 channel.BasicAck(ea.DeliveryTag, false);
             }
         };
         channel.BasicConsume(queue: this.queue,
                              autoAck: false,
                              consumer: consumer);
         listening = true;
     }
     else
     {
         throw new DuplicateSubscriberException();
     }
 }
Example #5
0
 public abstract void subscribe(ReceiverSubscribeCallback callback);