diff --git a/Source/SocketIO/Engine/SocketEngine.swift b/Source/SocketIO/Engine/SocketEngine.swift index 4904ee5..0000de2 100644 --- a/Source/SocketIO/Engine/SocketEngine.swift +++ b/Source/SocketIO/Engine/SocketEngine.swift @@ -371,6 +371,9 @@ open class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePollable, So fastUpgrade = false probing = false flushProbeWait() + if postWait.count != 0 { + flushWaitingForPostToWebSocket() + } } private func flushProbeWait() { @@ -381,10 +384,6 @@ open class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePollable, So } probeWait.removeAll(keepingCapacity: false) - - if postWait.count != 0 { - flushWaitingForPostToWebSocket() - } } /// Causes any packets that were waiting for POSTing to be sent through the WebSocket. This happens because when diff --git a/Source/SocketIO/Manager/SocketManager.swift b/Source/SocketIO/Manager/SocketManager.swift index 7434ec7..571bf8d 100644 --- a/Source/SocketIO/Manager/SocketManager.swift +++ b/Source/SocketIO/Manager/SocketManager.swift @@ -169,6 +169,7 @@ open class SocketManager : NSObject, SocketManagerSpec, SocketParsable, SocketDa engine?.engineQueue.sync { self.engine?.client = nil + self.engine?.disconnect(reason: "Adding new engine") } engine = SocketEngine(client: self, url: socketURL, config: config)