과 대화하기 위해 STOMP Client을 사용하는 iOS 응용 프로그램이 있습니다. 응용 프로그램은 시작 중에 많은 상태를로드 한 다음 STOMP에 게시 된 업데이트를 수신하여 해당 상태를 동기화 상태로 유지합니다. 물론 연결이 끊어지면 더 이상 동기화가되지 않아 큰 초기 블롭을 다시로드해야합니다. 어떤 종류의 네트워크 중단이라도이 동작을 유발하고 고객을 슬프게 만듭니다.STOMP를 사용하여 RabbitMQ에 연결할 때 누락 된 메시지를 어떻게 재생합니까?
이 문제를 해결하기 위해 많은 그림이 있지만 그 동안 나는이 문제를 해결하기 위해 영구 대기열을 사용하려고합니다. 서버가 대기열을 만들고 해당 항목을 적절한 항목에 바인딩 한 다음 대규모 시작 번들을 작성하는 것이 아이디어입니다. 끝나면 모든 것을 클라이언트에게 넘겨 줄 것입니다. 클라이언트는 시동 번들로 자체를 설정하고 큐에 대한 구독을 연 다음 서버가 준비가되는 동안 발생한 모든 업데이트를 처리합니다. 마찬가지로 클라이언트의 연결이 끊어지면 대기열에서 찾은 메시지를 다시 읽고 다시 시작할 수 있습니다.
내 문제는 클라이언트가 연결 한 후에 보낸 메시지를 성공적으로받는 동안 연결되기 전에 큐에 메시지가 있으면 읽지 못하는 것입니다. 마찬가지로 클라이언트의 연결이 끊어지면 다시 연결될 때 클라이언트는 부재 중일 때 도착한 메시지를 볼 수 없습니다.
누구나 누락 된 메시지를 클라이언트가 읽을 수있게하는 방법을 제안 할 수 있습니까?