diff --git a/LFLiveKit/publish/LFStreamRtmpSocket.m b/LFLiveKit/publish/LFStreamRtmpSocket.m index 89118046..99157e98 100644 --- a/LFLiveKit/publish/LFStreamRtmpSocket.m +++ b/LFLiveKit/publish/LFStreamRtmpSocket.m @@ -489,7 +489,7 @@ - (void)reconnect { self.isConnecting = NO; self.isReconnecting = YES; dispatch_async(dispatch_get_main_queue(), ^{ - [self performSelector:@selector(_reconnect) withObject:nil afterDelay:self.reconnectInterval]; + [self performSelector:@selector(_delayedReconnect) withObject:nil afterDelay:self.reconnectInterval]; }); } else if (self.retryTimes4netWorkBreaken >= self.reconnectCount) { @@ -503,9 +503,16 @@ - (void)reconnect { }); } -- (void)_reconnect{ +- (void)_delayedReconnect { [NSObject cancelPreviousPerformRequestsWithTarget:self]; - + + dispatch_async(self.rtmpSendQueue, ^{ + [self _reconnect]; + }); +} + +- (void)_reconnect { + _isReconnecting = NO; if(_isConnected) return;