Allow changing the socketURL post init Fixes #470
This commit is contained in:
parent
17bec21ad1
commit
30e4f59a16
@ -147,7 +147,7 @@ extension SocketEnginePollable {
|
|||||||
|
|
||||||
DefaultSocketLogger.Logger.log("Got polling response", type: "SocketEnginePolling")
|
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)
|
this.parsePollingMessage(str)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -33,9 +33,6 @@ import Foundation
|
|||||||
open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, SocketParsable {
|
open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, SocketParsable {
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
|
|
||||||
/// The URL of the socket.io server. This is set in the initializer.
|
|
||||||
public let socketURL: URL
|
|
||||||
|
|
||||||
/// The engine for this client.
|
/// The engine for this client.
|
||||||
public private(set) var engine: SocketEngineSpec?
|
public private(set) var engine: SocketEngineSpec?
|
||||||
|
|
||||||
@ -78,6 +75,18 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
|
|||||||
return engine?.sid
|
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 let logType = "SocketIOClient"
|
||||||
|
|
||||||
private var anyHandler: ((SocketAnyEvent) -> Void)?
|
private var anyHandler: ((SocketAnyEvent) -> Void)?
|
||||||
@ -85,12 +94,6 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
|
|||||||
private var handlers = [SocketEventHandler]()
|
private var handlers = [SocketEventHandler]()
|
||||||
private var reconnecting = false
|
private var reconnecting = false
|
||||||
|
|
||||||
private(set) var currentAck = -1
|
|
||||||
private(set) var reconnectAttempts = -1
|
|
||||||
|
|
||||||
var ackHandlers = SocketAckManager()
|
|
||||||
var waitingPackets = [SocketPacket]()
|
|
||||||
|
|
||||||
// MARK: Initializers
|
// MARK: Initializers
|
||||||
|
|
||||||
/// Type safe way to create a new SocketIOClient. `opts` can be omitted.
|
/// 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
|
// MARK: Methods
|
||||||
|
|
||||||
private func addEngine() -> SocketEngineSpec {
|
private func addEngine() {
|
||||||
DefaultSocketLogger.Logger.log("Adding engine", type: logType, args: "")
|
DefaultSocketLogger.Logger.log("Adding engine", type: logType, args: "")
|
||||||
|
|
||||||
engine?.client = nil
|
engine?.client = nil
|
||||||
engine = SocketEngine(client: self, url: socketURL, config: config)
|
engine = SocketEngine(client: self, url: socketURL, config: config)
|
||||||
|
|
||||||
return engine!
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Connect to the server.
|
/// Connect to the server.
|
||||||
@ -179,11 +180,11 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
|
|||||||
status = .connecting
|
status = .connecting
|
||||||
|
|
||||||
if engine == nil || forceNew {
|
if engine == nil || forceNew {
|
||||||
addEngine().connect()
|
addEngine()
|
||||||
} else {
|
|
||||||
engine?.connect()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
engine?.connect()
|
||||||
|
|
||||||
guard timeoutAfter != 0 else { return }
|
guard timeoutAfter != 0 else { return }
|
||||||
|
|
||||||
handleQueue.asyncAfter(deadline: DispatchTime.now() + Double(timeoutAfter)) {[weak self] in
|
handleQueue.asyncAfter(deadline: DispatchTime.now() + Double(timeoutAfter)) {[weak self] in
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user