From 6dc903153e684d81a203987472814895024db3c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=B5=E6=96=87=E4=BF=A1?= Date: Thu, 30 Mar 2017 16:34:59 +0800 Subject: [PATCH] move reconnect task to globel queue to prevent main thread is locked by wrong rtmp address --- LFLiveKit/publish/LFStreamRtmpSocket.m | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/LFLiveKit/publish/LFStreamRtmpSocket.m b/LFLiveKit/publish/LFStreamRtmpSocket.m index 89118046..e13f262c 100644 --- a/LFLiveKit/publish/LFStreamRtmpSocket.m +++ b/LFLiveKit/publish/LFStreamRtmpSocket.m @@ -488,10 +488,13 @@ - (void)reconnect { self.isConnected = NO; self.isConnecting = NO; self.isReconnecting = YES; - dispatch_async(dispatch_get_main_queue(), ^{ - [self performSelector:@selector(_reconnect) withObject:nil afterDelay:self.reconnectInterval]; - }); - + // dispatch_async(dispatch_get_main_queue(), ^{ + // [self performSelector:@selector(_reconnect) withObject:nil afterDelay:self.reconnectInterval]; + // }); + dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, self.reconnectInterval * NSEC_PER_SEC); + dispatch_after(delay, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{ + [self _reconnect]; + }); } else if (self.retryTimes4netWorkBreaken >= self.reconnectCount) { if (self.delegate && [self.delegate respondsToSelector:@selector(socketStatus:status:)]) { [self.delegate socketStatus:self status:LFLiveError];