Пример #1
0
        private bool OnReceived(object sender, PublishArrivedArgs ea)
        {
            Log.Info("Received Message");
            Log.Info("Topic: " + ea.Topic);
            Log.Info("MqttAdaptor.OnReceived, topic={0}", ea.Topic);

            var topic   = ea.Topic.Split('/');
            var sid     = topic[1];
            var mode    = MetaData.GetMode(topic[2]);
            var toQuery = mode == Mode.Return ? delegates : implements;
            IMessageConsumer msgConsumer;

            if (toQuery.TryGetValue(sid, out msgConsumer))
            {
                var job = new DefferedJob()
                {
                    Buffer          = (byte[])ea.Payload.TrimmedBuffer.Clone(),
                    Mode            = mode,
                    MessageConsumer = msgConsumer,
                };

                lock (defferedJobs)
                {
                    defferedJobs.Enqueue(job);
                }
            }

            return(true);
        }
Пример #2
0
        private bool OnReceived(object sender, PublishArrivedArgs ea)
        {
            Log.Info("Received Message");
            Log.Info("Topic: " + ea.Topic);
            Log.Info("MqttAdaptor.OnReceived, topic={0}", ea.Topic);

            var topic = ea.Topic.Split('/');
            var sid = topic[1];
            var mode = MetaData.GetMode(topic[2]);
            var toQuery = mode == Mode.Return ? delegates : implements;
            IMessageConsumer msgConsumer;

            if (toQuery.TryGetValue(sid, out msgConsumer))
            {
                var job = new DefferedJob()
                {
                    Buffer = (byte[])ea.Payload.TrimmedBuffer.Clone(),
                    Mode = mode,
                    MessageConsumer = msgConsumer,
                };

                lock (defferedJobs)
                {
                    defferedJobs.Enqueue(job);
                }
            }

            return true;
        }