Agente de push como assinante
Por padrão, o Agente de push pode enviar dados para a nuvem. Você pode editar o código do Agente de push para receber dados da nuvem.
Função de recepção de dados
A função no exemplo a seguir é chamada sempre que uma mensagem é recebida. A função processa a mensagem recebida de acordo com a lógica definida na função e, depois, atualiza o valor da variável
messageVariable
.private Task SubscribeClientMqttMsgPublishReceived(MqttApplicationMessageReceivedEventArgs e) { var message = e.ApplicationMessage.ConvertPayloadToString(); var messageVariable = Project.Current.GetVariable("Model/Message"); messageVariable.Value = Newtonsoft.Json.Linq.JObject.Parse(message)["Rows"][0]["Variables"][0]["Value"].ToString(); return Task.CompletedTask; }
Parâmetro de configuração do assinante
O exemplo a seguir mostra a função de recepção de dados que é passada como um parâmetro de configuração do Assinante. Além da configuração básica do Publicador, o método do assinante é configurado no método
Start()
.public override void Start() { // configuração padrão do PushAgent // Adicionar assinante mqttClientConnector.AddSubscriberAsync("my_custom_subscriber_topic", 1, SubscribeClientMqttMsgPublishReceived); } public async void AddSubscriberAsync(string topic, int qosLevel, Func<MqttApplicationMessageReceivedEventArgs, Task> subscribeClientMqttMsgPublishReceived) { mqttClient.ApplicationMessageReceivedAsync += subscribeClientMqttMsgPublishReceived; await mqttClient.SubscribeAsync(topic, GetQoSLevel(qosLevel)).ConfigureAwait(false); }
Dê sua opinião