diff --git a/Source/SocketEngine.swift b/Source/SocketEngine.swift index 54ede87..0485b1c 100644 --- a/Source/SocketEngine.swift +++ b/Source/SocketEngine.swift @@ -378,9 +378,8 @@ public final class SocketEngine: NSObject, SocketEnginePollable, SocketEngineWeb public func open() { if connected { - DefaultSocketLogger.Logger.error("Engine tried opening while connected. This is probably a programming error. " - + "Abandoning open attempt", type: logType) - return + DefaultSocketLogger.Logger.error("Engine tried opening while connected. Assuming this was a reconnect", type: logType) + close("reconnect") } DefaultSocketLogger.Logger.log("Starting engine", type: logType) diff --git a/Source/SocketIOClient.swift b/Source/SocketIOClient.swift index e0c6f25..687a4cb 100644 --- a/Source/SocketIOClient.swift +++ b/Source/SocketIOClient.swift @@ -309,9 +309,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketParsable if status == .Closed || !reconnects { didDisconnect(reason) } else if status != .Reconnecting { - status = .Reconnecting - handleEvent("reconnect", data: [reason], isInternalMessage: true) - tryReconnect() + tryReconnectWithReason(reason) } } @@ -456,7 +454,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketParsable Tries to reconnect to the server. */ public func reconnect() { - tryReconnect() + tryReconnectWithReason("manual reconnect") } /** @@ -467,9 +465,10 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketParsable handlers.removeAll(keepCapacity: false) } - private func tryReconnect() { + private func tryReconnectWithReason(reason: String) { if reconnectTimer == nil { DefaultSocketLogger.Logger.log("Starting reconnect", type: logType) + handleEvent("reconnect", data: [reason], isInternalMessage: true) status = .Reconnecting diff --git a/Source/SocketStringReader.swift b/Source/SocketStringReader.swift index e3b2d69..d1e2b59 100644 --- a/Source/SocketStringReader.swift +++ b/Source/SocketStringReader.swift @@ -65,4 +65,4 @@ struct SocketStringReader { mutating func readUntilEnd() -> String { return read(currentIndex.distanceTo(message.endIndex)) } -} \ No newline at end of file +}