Как я могу получать сообщения MQTT, опубликованные по определенной теме? Я могу публиковать сообщения в брокером MQTT, но я не знаю, как получать сообщения?KURA: как получать сообщения MQTT с помощью DataService?
Вот мой компонент XML:
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" activate="activate" deactivate="deactivate" name="arduinoCommunicator">
<implementation class="arduinoCommunicator.ArduinoCommunicator"/>
<reference bind="setDataService" cardinality="1..1" interface="org.eclipse.kura.data.DataService" name="DataService" policy="static" unbind="unsetDataService"/>
<service>
<provide interface="org.eclipse.kura.data.DataServiceListener"/>
</service>
</scr:component>
Вот мой класс расслоения активатора, я только сохранил необходимый код, я реализовать DataServiceListener, подписаться на эту тему на onConnectionEstablished() и я думаю, что Я получил сообщение о функции onMessageArrived, проблема, я не вижу в журналах, что подписка была произведена и функция onMessageArrived() не выполняется:
public class ArduinoCommunicator implements DataServiceListener {
public static DataService dataService;
@Override
public void onConnectionEstablished() {
String topic="egmkey/device2/cmd/PING";
System.out.println("connection has been established");
try {
ArduinoCommunicator.dataService.subscribe(topic, 1);//egmkey/device2/cmd/PING
System.out.println("subscription done to topic"+topic);
} catch (KuraException e) {
System.out.println("failed to subscribe: "+ e);
}
}
@Override
public void onMessageArrived(String topic, byte[] payload, int qos, boolean retained) {
System.out.println("message received!!!!!!!!!!!!!!!!!!!!!!:"+topic);
}
}
что я пропустил, чтобы иметь возможность получать сообщения MQTT с использованием DataS ervice на KURA? Благодарю.