0

我在我的 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);

连接没有问题。它连接没有问题。我只是想知道为什么 subscribe 在 26 以下的 API 版本上有这个问题。

4

1 回答 1

0

好的,我发现了问题。我正在使用 moquette 经纪人,经纪人在 java 版本 8 下有问题,API 级别 25 以某种方式使用 java 6。paho的mqtt客户端没有问题。谢谢大家

于 2019-08-27T19:08:07.563 回答