STOMPクライアントを使用してRabbitMQと通信するiOSアプリケーションがあります。アプリケーションは起動時に多くの状態をロードし、STOMPで公開された更新を受信することでその状態の同期を維持します。もちろん、接続が失われると、同期していることを確認できなくなるため、その大きな初期BLOBを再ロードする必要があります。あらゆる種類のネットワークの中断がこの動作を引き起こし、顧客を悲しませます。
これを修正するための大局的な方法はたくさんあります(そして私はそれらに取り組んでいます)が、それまでの間、私はこの問題を解決するために永続キューを使用しようとしています。サーバーがキューを作成し、それを適切なトピックにバインドしてから、大規模なスタートアップバンドルの構築を開始するという考え方です。終了すると、すべてがクライアントに渡されます。クライアントはスタートアップバンドルを設定し、キューへのサブスクリプションを開いてから、サーバーの準備中に発生した更新を処理します。同様に、クライアントが切断された場合、クライアントは単に再接続して、キューで見つけたメッセージの読み取りを再開できます。
私の問題は、クライアントが接続後に送信されたメッセージを正常に受信している間、接続する前にキューにメッセージがあった場合、それらは読み取られないことです。同様に、クライアントが切断された場合、再接続すると、クライアントが離れている間に到着したメッセージは表示されません。
誰かが私がクライアントにそれらの行方不明のメッセージを読めるようにする方法を提案できますか?