Как использовать сообщение, поступающее на Mqtt брокер? - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь сохранить сообщение в переменной, чтобы использовать его в другом классе. Сообщение приходит от брокера 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
}

Я думал об использовании события, когда приходит сообщение, но я не знаю, будет ли оно работать, и я не знаю, как использовать события при весенней загрузке

1 Ответ

0 голосов
/ 17 мая 2019

Решено: если вы хотите использовать ваше сообщение во всех ваших классах, вы должны объявить статическую строку (например, msg) в начале вашего класса mqttcallback, а затем повлиять на сообщение, прочитанное в брокере, на вашу переменную ( msg) и это все

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...