let the engine get the opts it needs

This commit is contained in:
Erik 2015-04-27 10:34:23 -04:00
parent a5b8202e45
commit 8a23960e20
2 changed files with 15 additions and 39 deletions

View File

@ -94,19 +94,21 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
}
}
public init(client:SocketEngineClient, forcePolling:Bool,
forceWebsockets:Bool, cookies:[NSHTTPCookie]?, logging:Bool,
sessionDelegate:NSURLSessionDelegate?, path:String) {
public init(client:SocketEngineClient, sessionDelegate:NSURLSessionDelegate?) {
self.client = client
self.forcePolling = forcePolling
self.forceWebsockets = forceWebsockets
self.cookies = cookies
self.log = logging
self.socketPath = path
self.session = NSURLSession(configuration: NSURLSessionConfiguration.ephemeralSessionConfiguration(),
delegate: sessionDelegate, delegateQueue: self.workQueue)
}
public convenience init(client:SocketEngineClient, opts:NSDictionary?) {
self.init(client: client, sessionDelegate: opts?["sessionDelegate"] as? NSURLSessionDelegate)
self.forceWebsockets = opts?["forceWebsockets"] as? Bool ?? false
self.forcePolling = opts?["forcePolling"] as? Bool ?? false
self.cookies = opts?["cookies"] as? [NSHTTPCookie]
self.log = opts?["log"] as? Bool ?? false
self.socketPath = opts?["path"] as? String ?? ""
}
deinit {
SocketLogger.log("Engine is being deinit", client: self)
}

View File

@ -31,8 +31,6 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
private var _connected = false
private var _connecting = false
private var currentReconnectAttempt = 0
private var forcePolling = false
private var forceWebsockets = false
private var handlers = ContiguousArray<SocketEventHandler>()
private var paramConnect = false
private var _secure = false
@ -61,9 +59,9 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
public var connecting:Bool {
return self._connecting
}
public var cookies:[NSHTTPCookie]?
public var engine:SocketEngine?
public var nsp = "/"
public var opts:[String: AnyObject]?
public var reconnects = true
public var reconnecting:Bool {
return self._reconnecting
@ -75,13 +73,11 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
public var sid:String? {
return self._sid
}
public var socketPath = ""
/**
Create a new SocketIOClient. opts can be omitted
*/
public init(var socketURL:String, opts:NSDictionary? = nil) {
public init(var socketURL:String, opts:[String: AnyObject]? = nil) {
if socketURL["https://"].matches().count != 0 {
self._secure = true
}
@ -90,6 +86,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
socketURL = socketURL["https://"] ~= ""
self.socketURL = socketURL
self.opts = opts
// Set options
if opts != nil {
@ -97,22 +94,10 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
self.sessionDelegate = sessionDelegate
}
if let cookies = opts!["cookies"] as? [NSHTTPCookie] {
self.cookies = cookies
}
if let log = opts!["log"] as? Bool {
self.log = log
}
if let path = opts!["path"] as? String {
self.socketPath = path
}
if let polling = opts!["forcePolling"] as? Bool {
self.forcePolling = polling
}
if var nsp = opts!["nsp"] as? String {
if nsp != "/" && nsp.hasPrefix("/") {
nsp.removeAtIndex(nsp.startIndex)
@ -134,10 +119,6 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
if let reconnectWait = opts!["reconnectWait"] as? Int {
self.reconnectWait = abs(reconnectWait)
}
if let ws = opts!["forceWebsockets"] as? Bool {
self.forceWebsockets = ws
}
} else {
self.reconnectAttempts = -1
}
@ -145,7 +126,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
super.init()
}
public convenience init(socketURL:String, options:NSDictionary?) {
public convenience init(socketURL:String, options:[String: AnyObject]?) {
self.init(socketURL: socketURL, opts: options)
}
@ -156,14 +137,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
private func addEngine() {
SocketLogger.log("Adding engine", client: self)
self.engine = SocketEngine(client: self,
forcePolling: self.forcePolling,
forceWebsockets: self.forceWebsockets,
cookies: self.cookies,
logging: self.log,
sessionDelegate: self.sessionDelegate,
path: self.socketPath
)
self.engine = SocketEngine(client: self, opts: self.opts)
}
/**