我使用 fusesource 代码将 mqtt 消息发布到 Apollo 服务器时遇到问题。我用如下代码编写了消息发布者
connection.publish(topic, message.getBytes(),QoS.AT_LEAST_ONCE, true);
我还编写了订阅该主题的消息消费者。如果我先启动消费者,再启动发布者,消费者可以正确获取所有消息。但是,如果我先启动发布者再启动消费者,消费者将不会收到消息。另外,我进入了 Apollo 管理控制台,在队列中找不到任何消息。(请参阅随附的屏幕截图)。
我应该怎么做才能解决这个问题?我不能让我的消费者一直运行,我不想丢失来自发布者的任何消息。当消费者离线时,代理(Apollo)不应该保留所有消息吗?如果是,我怎么看不到?
这似乎是一个愚蠢的问题,但我对 MQTT 很陌生,我确实需要一些帮助。