Я пытаюсь сохранить сообщение в переменной, чтобы использовать его в другом классе. Сообщение приходит от брокера Mqtt, и я могу прочитать его в методе Collback, но я не могу связать его с переменной, чтобы использовать его в другом методе.
Я пробовал с get / set, но я все еще не могу получить его от моего другого класса, я думаю, это потому, что у нас есть обновление страницы, но даже когда это происходит, сообщение не отображается (я хочу чтобы отобразить его в консоли перед отображением на веб-странице)
// All the import
@Controller
public class MainController{
@Autowired
SimpleMqttCallBack simpleMqttCallBack;
...
@RequestMapping(value="/")
public String home() throws MqttException {
System.out.println("== START SUBSCRIBER ==");
MqttClient client=new MqttClient("tcp://192.168.1.52:1883", MqttClient.generateClientId());
client.setCallback( new SimpleMqttCallBack() );
client.connect();
client.subscribe("iot_data");
System.out.println(simpleMqttCallBack.getT());
return "index";
}
}
@Service
public class SimpleMqttCallBack implements MqttCallback {
String T;
//Set/get of T
//connectionLost
@Override
public void messageArrived(String topic, MqttMessage message) throws Exception {
String msg = new String(message.getPayload());
setT(msg);
}
//Deliverycomplete
}
Я думал об использовании события, когда приходит сообщение, но я не знаю, будет ли оно работать, и я не знаю, как использовать события при весенней загрузке