diff --git a/Source/ARTRealtime.m b/Source/ARTRealtime.m index c9877678c..9a8fbde5f 100644 --- a/Source/ARTRealtime.m +++ b/Source/ARTRealtime.m @@ -301,7 +301,7 @@ - (void)auth:(ARTAuthInternal *)auth didAuthorize:(ARTTokenDetails *)tokenDetail ARTLogDebug(self.logger, @"RS:%p halt current connection and reconnect with %@", self.rest, tokenDetails); [self abortAndReleaseTransport:[ARTStatus state:ARTStateOk]]; [self setTransportWithResumeKey:self->_transport.resumeKey]; - [self->_transport connectWithToken:tokenDetails.token]; + [self connectTransportWithToken:tokenDetails.token orKey:nil]; [self cancelAllPendingAuthorizations]; waitForResponse(); }; @@ -644,8 +644,6 @@ - (void)performTransitionToState:(ARTRealtimeConnectionState)state withParams:(A [self createAndConnectTransportWithConnectionResume:resume]; } - [self setReachabilityActive:YES]; - break; } case ARTRealtimeClosing: { @@ -811,6 +809,16 @@ - (void)createAndConnectTransportWithConnectionResume:(BOOL)resume { [self transportConnectForcingNewToken:_renewingToken newConnection:true]; } +- (void)connectTransportWithToken:(nullable NSString *)token orKey:(nullable NSString *)key { + if (token != nil) { + [self.transport connectWithToken:token]; + } + else { + [self.transport connectWithKey:key]; + } + [self setReachabilityActive:YES]; +} + - (void)abortAndReleaseTransport:(ARTStatus *)status { [_transport abort:status]; _transport = nil; @@ -1077,7 +1085,7 @@ - (void)transportConnectForcingNewToken:(BOOL)forceNewToken newConnection:(BOOL) ARTClientOptions *options = [self.options copy]; if ([options isBasicAuth]) { // Basic - [self.transport connectWithKey:options.key]; + [self connectTransportWithToken:nil orKey:options.key]; } else { // Token @@ -1086,7 +1094,7 @@ - (void)transportConnectForcingNewToken:(BOOL)forceNewToken newConnection:(BOOL) if (!forceNewToken && [self.auth tokenRemainsValid]) { // Reuse token ARTLogDebug(self.logger, @"R:%p reusing token for auth", self); - [self.transport connectWithToken:self.auth.tokenDetails.token]; + [self connectTransportWithToken:self.auth.tokenDetails.token orKey:nil]; } else { // New Token @@ -1128,7 +1136,7 @@ - (void)transportConnectForcingNewToken:(BOOL)forceNewToken newConnection:(BOOL) [self resetTransportWithResumeKey:self->_transport.resumeKey]; } if (newConnection) { - [self.transport connectWithToken:tokenDetails.token]; + [self connectTransportWithToken:tokenDetails.token orKey:nil]; } }]; }