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); }
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); }); } }
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); } } }