From e29c9043b25758f7812c335427dfd668c9e1d4b5 Mon Sep 17 00:00:00 2001 From: musicabbage Date: Thu, 13 Apr 2017 12:08:38 +0800 Subject: [PATCH 1/2] =?UTF-8?q?remove=20engine=E2=80=99s=20listener=20befo?= =?UTF-8?q?re=20assign=20new=20instance?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Source/SocketEngine.swift | 5 +++++ Source/SocketIOClient.swift | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/Source/SocketEngine.swift b/Source/SocketEngine.swift index 3bf4ae6..51e9523 100644 --- a/Source/SocketEngine.swift +++ b/Source/SocketEngine.swift @@ -243,6 +243,11 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll } private func createWebsocketAndConnect() { + + if let oldWs = ws { + oldWs.delegate = nil + } + ws = WebSocket(url: urlWebSocketWithSid as URL) if cookies != nil { diff --git a/Source/SocketIOClient.swift b/Source/SocketIOClient.swift index 0085d60..3660bda 100644 --- a/Source/SocketIOClient.swift +++ b/Source/SocketIOClient.swift @@ -120,6 +120,10 @@ public final class SocketIOClient : NSObject, SocketEngineClient, SocketParsable private func addEngine() -> SocketEngineSpec { DefaultSocketLogger.Logger.log("Adding engine", type: logType, args: "") + if let oldEngine = engine { + oldEngine.client = nil + } + engine = SocketEngine(client: self, url: socketURL, config: config) return engine! From 907b1b3ae2481369ba22c7b8cec98a5a454def40 Mon Sep 17 00:00:00 2001 From: musicabbage Date: Fri, 14 Apr 2017 14:57:46 +0800 Subject: [PATCH 2/2] Removed if-statement for review notes https://github.com/socketio/socket.io-client-swift/pull/651#pullrequestreview-32616528 --- Source/SocketEngine.swift | 5 +---- Source/SocketIOClient.swift | 5 +---- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/Source/SocketEngine.swift b/Source/SocketEngine.swift index 51e9523..758bc43 100644 --- a/Source/SocketEngine.swift +++ b/Source/SocketEngine.swift @@ -244,10 +244,7 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll private func createWebsocketAndConnect() { - if let oldWs = ws { - oldWs.delegate = nil - } - + ws?.delegate = nil ws = WebSocket(url: urlWebSocketWithSid as URL) if cookies != nil { diff --git a/Source/SocketIOClient.swift b/Source/SocketIOClient.swift index 3660bda..a96ceda 100644 --- a/Source/SocketIOClient.swift +++ b/Source/SocketIOClient.swift @@ -120,10 +120,7 @@ public final class SocketIOClient : NSObject, SocketEngineClient, SocketParsable private func addEngine() -> SocketEngineSpec { DefaultSocketLogger.Logger.log("Adding engine", type: logType, args: "") - if let oldEngine = engine { - oldEngine.client = nil - } - + engine?.client = nil engine = SocketEngine(client: self, url: socketURL, config: config) return engine!