Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带apollo的android mqtt-client-1.5侦听器_Android_Mqtt_Apollo - Fatal编程技术网

带apollo的android mqtt-client-1.5侦听器

带apollo的android mqtt-client-1.5侦听器,android,mqtt,apollo,Android,Mqtt,Apollo,我有一个android应用程序启动了一个后台服务,在这里我启动了一个指向apollo代理的mqtt连接。调用startService时,im从onStartCommand设置主机名、端口用户名、密码等启动MQTT。。接 connection = mqtt.callbackConnection(); 连接成功了,我可以清楚地看到我的主题“uniqueId”上有一个消费者 但是,当我向主题发送消息时,侦听器从不调用发布时的。。另一个奇怪的现象是,如果我断开了与代理的连接,例如我关闭了代理,使活动连

我有一个android应用程序启动了一个后台服务,在这里我启动了一个指向apollo代理的mqtt连接。调用startService时,im从onStartCommand设置主机名、端口用户名、密码等启动MQTT。。接

connection = mqtt.callbackConnection();
连接成功了,我可以清楚地看到我的主题“uniqueId”上有一个消费者

但是,当我向主题发送消息时,侦听器从不调用发布时的。。另一个奇怪的现象是,如果我断开了与代理的连接,例如我关闭了代理,使活动连接断开,那么当mqtt客户端重新连接时,它似乎调用了侦听器和onPublish,因为我在持久订户主题上堆积的所有消息都被传递了。。我是否遗漏了关于听众的任何信息

难道它不应该因为连接而主动使用该主题吗?订阅

Topic[] topics = { new Topic("uniqueId", QoS.AT_LEAST_ONCE) };
connection.subscribe(topics, new Callback<byte[]>() {
    public void onSuccess(byte[] qoses) {
    }
    public void onFailure(Throwable value) {
        value.printStackTrace();
    }
});

connection.listener(new Listener() {
    @Override
    public void onConnected() {
    }
    @Override
    public void onDisconnected() {
    }
    @Override
    public void onFailure(Throwable value) {
    }
    @Override
    public void onPublish(UTF8Buffer topic, Buffer payload, Runnable ack) {
        ack.run();
    }
});
Topic[]topics={newtopic(“uniqueId”,QoS.LEAST_ONCE)};
订阅(主题,新回调(){
成功时的公共无效(字节[]qoses){
}
失败时公共无效(可丢弃值){
value.printStackTrace();
}
});
connection.listener(新的listener(){
@凌驾
未连接的公共空间(){
}
@凌驾
公共空间已断开连接(){
}
@凌驾
失败时公共无效(可丢弃值){
}
@凌驾
public void onPublish(UTF8Buffer主题、缓冲区负载、可运行确认){
ack.run();
}
});

我不熟悉阿波罗,但我同意这种行为听起来不正确。您可以尝试对另一个代理进行测试,看看它是否按预期工作,然后在必要时针对Apollo提交一个bug


您可以使用例如test.mosquitto.org:1883来测试,或者使用mqtt.org/software上列出的其他公共工具之一。我不熟悉阿波罗,但我同意这种行为听起来不正确。您可以尝试对另一个代理进行测试,看看它是否按预期工作,然后在必要时针对Apollo提交一个bug


您可以使用例如test.mosquitto.org:1883对其进行测试,或者使用mqtt.org/software上列出的其他公共工具之一

实际上,我刚刚对activemq 5.8.0进行了测试,它似乎在那里工作。我猜它与发送到主题的消息有关,或者它是Apollo上的一个bug。事实上,我刚刚用activemq 5.8.0对它进行了测试,它似乎在那里工作。我猜这与发送到主题的消息有关,或者是Apollo上的一个bug似乎在activemq和mosquitto上都起作用。。有没有人专门在阿波罗遇到过这个问题?似乎同时在activemq和mosquitto上工作。。有没有人特别经历过阿波罗的这个问题?