Avoid lost messages by acknowledges message receipt after the message is processed.

// FREEBIE
pull/1/head
Matthew Chen 7 years ago
parent f9b51c01f4
commit 1558d8c6c5

@ -39,9 +39,10 @@ class MessageFetcherJob: NSObject {
let runPromise = self.fetchUndeliveredMessages().then { (envelopes: [OWSSignalServiceProtosEnvelope], more: Bool) -> Void in
for envelope in envelopes {
Logger.info("\(self.TAG) received envelope.")
self.messagesManager.handleReceivedEnvelope(envelope)
self.acknowledgeDelivery(envelope: envelope)
self.messagesManager.handleReceivedEnvelope(envelope, completion: {
// Don't acknowledge delivery until the envelope has been processed.
self.acknowledgeDelivery(envelope: envelope)
})
}
if more {
Logger.info("\(self.TAG) more messages, so recursing.")

Loading…
Cancel
Save