我有一個iOS應用程序,它使用STOMP Client與RabbitMQ對話。應用程序在啓動過程中會加載很多狀態,然後通過接收STOMP上發佈的更新來保持該狀態同步。當然,如果它失去了連接,就不能再確定它是同步的,因此必須重新加載那個大的初始blob。任何類型的網絡中斷都會觸發此行爲,並使我的客戶感到難過。如何在使用STOMP連接RabbitMQ時重播遺漏的消息?
有很多大的方法來解決這個問題(我正在處理它們),但同時,我試圖使用持久隊列來解決這個問題。其思想是服務器將創建一個隊列,將其綁定到適當的主題,然後開始構建大型啓動包。完成後,它會把一切交給客戶。客戶端將使用啓動包自行設置,打開對隊列的訂閱,然後處理服務器準備就緒時發生的所有更新。同樣,如果客戶端應該斷開連接,它可以簡單地重新連接並恢復讀取它在隊列中找到的消息。
我的問題是,雖然客戶端成功接收連接後發送的消息,但如果在連接之前隊列中有消息,則不會讀取它們。同樣,如果客戶端斷開連接,當它重新連接時,它不會看到任何消息到達時的狀態。
任何人都可以建議我如何讓客戶端能夠閱讀這些丟失的消息嗎?