示例#1
0
        private void Listener()
        {
            var logger = LogManager.GetCurrentClassLogger();
            ApplicationDbContext db  = new ApplicationDbContext();
            MongoClient          mdb = new MongoClient();
            CheckDB cdb = new CheckDB(db, mdb, logger);

            try
            {
                var bus = RabbitHutch.CreateBus("host=localhost").Advanced;

                var queue    = bus.QueueDeclare("data_queue");
                var exchange = bus.ExchangeDeclare("data", ExchangeType.Topic, false, false, false, false, null, false);
                var binding  = bus.Bind(exchange, queue, "#");

                bus.Consume(queue, (body, properties, info) => Task.Factory.StartNew(() =>

                {
                    string message   = Encoding.UTF8.GetString(body);
                    dynamic json     = JObject.Parse(message);
                    PacketHandler pd = new PacketHandler(cdb);

                    if (json.packet_type == "alarm")
                    {
                        pd.Alarm(json);
                    }
                }));
            }
            catch (Exception e)
            {
                logger.Error(e);
            }
        }