在mqtt订阅代码里面,我想将订阅的消息里面的部分内容提取出来作为另外一个方法里的变量。但是mqtt的messagearrived方法默认是无返回值的,所以想知道该怎么调用一个无返回值方法的局部变量。
public static void subscribe() {
try {
MqttClient client = new MqttClient(serviceURI, clientID, persistence);
client.setCallback(new MqttCallback() {
@Override
public void connectionLost(Throwable cause) {
System.out.println("订阅者连接丢失...");
System.out.println(cause.getMessage());
}
@Override
public void messageArrived(String topic, MqttMessage message) {
String mes =message.toString();
String rssi = mes.substring(mes.indexOf("rssi")+7,mes.indexOf("ibeaconTxPower")-2);
int abc = Integer.parseInt(rssi);
System.out.println("第一个网关的RSSI值: "+Integer.parseInt(rssi));
}
@Override
public void deliveryComplete(IMqttDeliveryToken token) {
}
});
MqttConnectOptions connectOptions = new MqttConnectOptions();
connectOptions.setUserName(username);
connectOptions.setPassword(password.toCharArray());
connectOptions.setCleanSession(false);
//订阅者连接订阅主题
client.connect(connectOptions);
client.subscribe(topic, qos);
System.out.println("订阅者连接状态: " + client.isConnected());
} catch (MqttException e) {
e.printStackTrace();
}
}
想要获取messagearrived里的rssi,调用到另外一个类里面