我在我的Android应用程序上将Paho的MQTT客户端用作服务。当我在API 26及更高版本上尝试时,它可以正常工作,但订阅在该版本下无法正常工作。
mqttClient.subscribe(JOIN_TOPIC, 0).setActionCallback(new IMqttActionListener() {
@Override
public void onSuccess(IMqttToken asyncActionToken) {
Log.d("Client Service", "Subscribe Success");
}
@Override
public void onFailure(IMqttToken asyncActionToken, Throwable exception) {
Log.d("Client Service", "Subscribe Failed");
}
});
我正在使用genymotion进行测试和SDK调试工具。 API 26进入onSuccess方法,但API 25没有。两种客户端上的发布方法都没有问题。
mqttClient = new MqttAndroidClient(getApplicationContext(), serverUri, nickname);
MqttConnectOptions options = new MqttConnectOptions();
options.setCleanSession(true);
mqttToken = mqttClient.connect(options);
连接没有问题。连接没有问题。我只想知道为什么订阅在26以下的API版本上存在该问题。
答案 0 :(得分:0)
好,我发现了问题。我正在使用Moquette Broker,并且Broker在Java版本8下和API 25级在某种程度上使用Java 6时遇到问题。 Paho的mqtt客户端没有问题。 谢谢大家