Beispiel #1
0
 public void addRecivedData(string topic, MQTTMsgPublishEventArgs message, MqttClient client)
 {
     lock (this.myTopicsLock) {
         if (this.client.Equals(client) && this.myTopics.ContainsKey(topic))
         {
             this.myTopics[topic] = message;
         }
         else
         {
             this.myTopics.Add(topic, message);
         }
     }
     this.onNewDataAction?.Invoke(topic, message);
 }
Beispiel #2
0
        private static void Client_MQTTMsgPublishReceived(string topic, MQTTMsgPublishEventArgs message, MqttClient client)
        {
            Dictionary <string, mqttClientData> everyBodyUsisngBroker = null;

            lock (MQTTController.brokerStuffLock) {
                everyBodyUsisngBroker = MQTTController.getWhoisUsing(client.remoteAddress, client.remotePort);
            }
            if (everyBodyUsisngBroker != null && everyBodyUsisngBroker.Count > 0)
            {
                System.Threading.Tasks.Parallel.ForEach(everyBodyUsisngBroker.Values.ToList(), (clientUsingBroker) =>
                {
                    clientUsingBroker.addRecivedData(topic, message, client);
                });
            }
        }
Beispiel #3
0
 public void addRecivedData(string topic, MQTTMsgPublishEventArgs message = null)
 {
     lock (this.myTopicsLock) {
         if (this.myTopics.ContainsKey(topic))
         {
             if (message != null)
             {
                 this.myTopics[topic] = message;
             }
         }
         else
         {
             this.myTopics.Add(topic, message);
         }
     }
 }