Esempio n. 1
0
 private bool client_PublishArrived(object sender, PublishArrivedArgs e)
 {
     Debug.WriteLine("Received Message");
     Debug.WriteLine("Topic: " + e.Topic);
     Debug.WriteLine("Payload: " + e.Payload);
     return true;
 }
Esempio n. 2
0
        protected void OnPublishArrived(MqttPublishMessage m)
        {
            bool accepted = false;

            if (PublishArrived != null)
            {
                PublishArrivedArgs e = new PublishArrivedArgs(m.Topic, m.Payload, m.Retained, m.QualityOfService);
                try
                {
                    accepted |= PublishArrived(this, e);
                }
                catch (Exception ex)
                {
                    MqttClient.Logger.Log.Write(LogLevel.ERROR, "MqttLib: Uncaught exception from user delegate: " + ex.ToString());
                }
            }

            if (topicTree != null)
            {
                PublishArrivedArgs e = new PublishArrivedArgs(m.Topic, m.Payload, m.Retained, m.QualityOfService);
                List<PublishArrivedDelegate> subscribers = topicTree.CollectMatches(new Topic(m.Topic));
                foreach (PublishArrivedDelegate pad in subscribers)
                {
                    try
                    {
                        accepted |= pad(this, e);
                    }
                    catch (Exception ex)
                    {
                        MqttClient.Logger.Log.Write(LogLevel.ERROR, "MqttLib: Uncaught exception from user delegate: " + ex.ToString());
                    }
                }
            }

            if (m.QualityOfService > QoS.BestEfforts)
            {
                qosManager.PublishAccepted(m.MessageID, accepted);
            }
        }