diff --git a/Source/ARTRealtime.m b/Source/ARTRealtime.m index 6f965a6b9..1811f2148 100644 --- a/Source/ARTRealtime.m +++ b/Source/ARTRealtime.m @@ -227,13 +227,18 @@ - (void)connect { } - (void)_connect { - NSTimeInterval intervalSinceLast = [[NSDate date] timeIntervalSinceDate:_lastActivity]; - - // We want to enforce a new connection also when there hasn't been activity for longer than (idle interval + TTL) - if(self.connection.state_nosync == ARTRealtimeClosing || intervalSinceLast > (_maxIdleInterval + _connectionStateTtl)) { + if(self.connection.state_nosync == ARTRealtimeClosing) { // New connection _transport = nil; } + + // We want to enforce a new connection also when there hasn't been activity for longer than (idle interval + TTL) + NSTimeInterval intervalSinceLast = [[NSDate date] timeIntervalSinceDate:_lastActivity]; + if (intervalSinceLast > (_maxIdleInterval + _connectionStateTtl)) { + [self.connection setId:nil]; + [self.connection setKey:nil]; + [self.connection setSerial:0]; + } [self transition:ARTRealtimeConnecting]; }