fusesource コードを使用して mqtt メッセージを Apollo サーバーに公開すると問題が発生します。次のようなコードでメッセージパブリッシャーを書きました
connection.publish(topic, message.getBytes(),QoS.AT_LEAST_ONCE, true);
トピックにサブスクライブするメッセージ コンシューマーも作成しました。最初にコンシューマーを開始し、次にパブリッシャーを開始した場合、コンシューマーはすべてのメッセージを正しく取得できます。ただし、最初にパブリッシャーを開始してからコンシューマーを開始すると、コンシューマーはメッセージを受信しません。また、Apollo 管理コンソールにアクセスしましたが、キューにメッセージが見つかりませんでした。(添付のスクリーンショットを参照してください)。
この問題を解決するにはどうすればよいですか? コンシューマーを常に実行することはできませんでした。パブリッシャーからのメッセージを失いたくありません。コンシューマーがオフラインの場合、ブローカー (Apollo) はすべてのメッセージを保持するべきではありませんか? はいの場合、なぜ私はそれを見ることができなかったのですか?
これはばかげた質問のように思えますが、私は MQTT にかなり慣れていないので、助けが必要です。