use socketioclientoptions for engine
This commit is contained in:
parent
0dd3def2e4
commit
9abf2e77e0
@ -15,7 +15,7 @@ class SocketEngineTest: XCTestCase {
|
|||||||
override func setUp() {
|
override func setUp() {
|
||||||
super.setUp()
|
super.setUp()
|
||||||
client = SocketIOClient(socketURL: "")
|
client = SocketIOClient(socketURL: "")
|
||||||
engine = SocketEngine(client: client, opts: nil)
|
engine = SocketEngine(client: client, options: nil)
|
||||||
|
|
||||||
client.setTestable()
|
client.setTestable()
|
||||||
}
|
}
|
||||||
|
|||||||
@ -42,7 +42,6 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
|
|||||||
private let handleQueue = dispatch_queue_create("com.socketio.engineHandleQueue", DISPATCH_QUEUE_SERIAL)
|
private let handleQueue = dispatch_queue_create("com.socketio.engineHandleQueue", DISPATCH_QUEUE_SERIAL)
|
||||||
private let logType = "SocketEngine"
|
private let logType = "SocketEngine"
|
||||||
private let parseQueue = dispatch_queue_create("com.socketio.engineParseQueue", DISPATCH_QUEUE_SERIAL)
|
private let parseQueue = dispatch_queue_create("com.socketio.engineParseQueue", DISPATCH_QUEUE_SERIAL)
|
||||||
private let session: NSURLSession!
|
|
||||||
private let workQueue = NSOperationQueue()
|
private let workQueue = NSOperationQueue()
|
||||||
|
|
||||||
private var closed = false
|
private var closed = false
|
||||||
@ -63,6 +62,7 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
|
|||||||
private var postWait = [String]()
|
private var postWait = [String]()
|
||||||
private var probing = false
|
private var probing = false
|
||||||
private var probeWait = ProbeWaitQueue()
|
private var probeWait = ProbeWaitQueue()
|
||||||
|
private var session: NSURLSession!
|
||||||
private var waitingForPoll = false
|
private var waitingForPoll = false
|
||||||
private var waitingForPost = false
|
private var waitingForPost = false
|
||||||
private var websocketConnected = false
|
private var websocketConnected = false
|
||||||
@ -71,16 +71,33 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
|
|||||||
private(set) var polling = true
|
private(set) var polling = true
|
||||||
private(set) var websocket = false
|
private(set) var websocket = false
|
||||||
|
|
||||||
public init(client: SocketEngineClient, opts: NSDictionary?) {
|
init(client: SocketEngineClient, options: Set<SocketIOClientOption>) {
|
||||||
self.client = client
|
self.client = client
|
||||||
session = NSURLSession(configuration: .defaultSessionConfiguration(),
|
for option in options {
|
||||||
delegate: opts?["sessionDelegate"] as? NSURLSessionDelegate,
|
switch option {
|
||||||
delegateQueue: workQueue)
|
case .SessionDelegate(let delegate):
|
||||||
forceWebsockets = opts?["forceWebsockets"] as? Bool ?? false
|
session = NSURLSession(configuration: .defaultSessionConfiguration(),
|
||||||
forcePolling = opts?["forcePolling"] as? Bool ?? false
|
delegate: delegate,
|
||||||
cookies = opts?["cookies"] as? [NSHTTPCookie]
|
delegateQueue: workQueue)
|
||||||
socketPath = opts?["path"] as? String ?? ""
|
case .ForcePolling(let force):
|
||||||
extraHeaders = opts?["extraHeaders"] as? [String: String]
|
forcePolling = force
|
||||||
|
case .ForceWebsockets(let force):
|
||||||
|
forceWebsockets = force
|
||||||
|
case .Cookies(let cookies):
|
||||||
|
self.cookies = cookies
|
||||||
|
case .Path(let path):
|
||||||
|
socketPath = path
|
||||||
|
case .ExtraHeaders(let headers):
|
||||||
|
extraHeaders = headers
|
||||||
|
default:
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public convenience init(client: SocketEngineClient, options: NSDictionary?) {
|
||||||
|
self.init(client: client,
|
||||||
|
options: SocketIOClientOption.NSDictionaryToSocketOptionsSet(options ?? [:]))
|
||||||
}
|
}
|
||||||
|
|
||||||
deinit {
|
deinit {
|
||||||
|
|||||||
@ -33,7 +33,7 @@ import Foundation
|
|||||||
var urlPolling: String {get}
|
var urlPolling: String {get}
|
||||||
var urlWebSocket: String {get}
|
var urlWebSocket: String {get}
|
||||||
|
|
||||||
init(client: SocketEngineClient, opts: NSDictionary?)
|
init(client: SocketEngineClient, options: NSDictionary?)
|
||||||
|
|
||||||
func close()
|
func close()
|
||||||
func open(opts: [String: AnyObject]?)
|
func open(opts: [String: AnyObject]?)
|
||||||
|
|||||||
@ -111,8 +111,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
|
|||||||
private func addEngine() -> SocketEngine {
|
private func addEngine() -> SocketEngine {
|
||||||
Logger.log("Adding engine", type: logType)
|
Logger.log("Adding engine", type: logType)
|
||||||
|
|
||||||
let newEngine = SocketEngine(client: self, opts:
|
let newEngine = SocketEngine(client: self, options: options ?? [])
|
||||||
SocketIOClientOption.SocketOptionsSetToNSDictionary(options ?? []))
|
|
||||||
|
|
||||||
engine = newEngine
|
engine = newEngine
|
||||||
return newEngine
|
return newEngine
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user