diff --git a/Source/SocketEnginePollable.swift b/Source/SocketEnginePollable.swift index 43bfb68..569db51 100644 --- a/Source/SocketEnginePollable.swift +++ b/Source/SocketEnginePollable.swift @@ -147,7 +147,7 @@ extension SocketEnginePollable { DefaultSocketLogger.Logger.log("Got polling response", type: "SocketEnginePolling") - if let str = String(data: data!, encoding: String.Encoding.utf8) { + if let str = String(data: data!, encoding: .utf8) { this.parsePollingMessage(str) } diff --git a/Source/SocketIOClient.swift b/Source/SocketIOClient.swift index b8e9200..23b69b0 100644 --- a/Source/SocketIOClient.swift +++ b/Source/SocketIOClient.swift @@ -33,9 +33,6 @@ import Foundation open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, SocketParsable { // MARK: Properties - /// The URL of the socket.io server. This is set in the initializer. - public let socketURL: URL - /// The engine for this client. public private(set) var engine: SocketEngineSpec? @@ -78,6 +75,18 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So return engine?.sid } + /// The URL of the socket.io server. + /// + /// If changed after calling `init`, `forceNew` must be set to `true`, or it will only connect to the url set in the + /// init. + public var socketURL: URL + + var ackHandlers = SocketAckManager() + var waitingPackets = [SocketPacket]() + + private(set) var currentAck = -1 + private(set) var reconnectAttempts = -1 + private let logType = "SocketIOClient" private var anyHandler: ((SocketAnyEvent) -> Void)? @@ -85,12 +94,6 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So private var handlers = [SocketEventHandler]() private var reconnecting = false - private(set) var currentAck = -1 - private(set) var reconnectAttempts = -1 - - var ackHandlers = SocketAckManager() - var waitingPackets = [SocketPacket]() - // MARK: Initializers /// Type safe way to create a new SocketIOClient. `opts` can be omitted. @@ -149,13 +152,11 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So // MARK: Methods - private func addEngine() -> SocketEngineSpec { + private func addEngine() { DefaultSocketLogger.Logger.log("Adding engine", type: logType, args: "") engine?.client = nil engine = SocketEngine(client: self, url: socketURL, config: config) - - return engine! } /// Connect to the server. @@ -179,11 +180,11 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So status = .connecting if engine == nil || forceNew { - addEngine().connect() - } else { - engine?.connect() + addEngine() } + engine?.connect() + guard timeoutAfter != 0 else { return } handleQueue.asyncAfter(deadline: DispatchTime.now() + Double(timeoutAfter)) {[weak self] in