Use sending queue in websocket send failover to REST.

pull/1/head
Matthew Chen 7 years ago
parent 677b898bfc
commit 3f4cd15f5b

@ -989,9 +989,13 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
success:successHandler]; success:successHandler];
} }
failure:^(NSInteger statusCode, NSData *_Nullable responseData, NSError *error) { failure:^(NSInteger statusCode, NSData *_Nullable responseData, NSError *error) {
// Websockets can fail in different ways, so we don't decrement remainingAttempts for websocket failure. dispatch_async([OWSDispatch sendingQueue], ^{
// Instead we fall back to REST, which will decrement retries. DDLogDebug(
// e.g. after linking a new device, sync messages will fail until the websocket re-opens. @"%@ in %s falling back to REST since first attempt failed.", self.logTag, __PRETTY_FUNCTION__);
// Websockets can fail in different ways, so we don't decrement remainingAttempts for websocket
// failure. Instead we fall back to REST, which will decrement retries. e.g. after linking a new
// device, sync messages will fail until the websocket re-opens.
[self sendMessageToService:message [self sendMessageToService:message
recipient:recipient recipient:recipient
thread:thread thread:thread
@ -999,11 +1003,9 @@ NSString *const OWSMessageSenderRateLimitedException = @"RateLimitedException";
useWebsocketIfAvailable:NO useWebsocketIfAvailable:NO
success:successHandler success:successHandler
failure:failureHandler]; failure:failureHandler];
});
}]; }];
} else { } else {
if (!useWebsocketIfAvailable && TSSocketManager.canMakeRequests) {
DDLogDebug(@"%@ in %s falling back to REST since first attempt failed.", self.logTag, __PRETTY_FUNCTION__);
}
[self.networkManager makeRequest:request [self.networkManager makeRequest:request
success:^(NSURLSessionDataTask *task, id responseObject) { success:^(NSURLSessionDataTask *task, id responseObject) {
[self messageSendDidSucceed:message [self messageSendDidSucceed:message

Loading…
Cancel
Save