@@ -42,7 +42,6 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
4242 private let handleQueue = dispatch_queue_create ( " com.socketio.engineHandleQueue " , DISPATCH_QUEUE_SERIAL)
4343 private let logType = " SocketEngine "
4444 private let parseQueue = dispatch_queue_create ( " com.socketio.engineParseQueue " , DISPATCH_QUEUE_SERIAL)
45- private let session : NSURLSession !
4645 private let workQueue = NSOperationQueue ( )
4746
4847 private var closed = false
@@ -63,6 +62,7 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
6362 private var postWait = [ String] ( )
6463 private var probing = false
6564 private var probeWait = ProbeWaitQueue ( )
65+ private var session : NSURLSession !
6666 private var waitingForPoll = false
6767 private var waitingForPost = false
6868 private var websocketConnected = false
@@ -71,16 +71,33 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
7171 private( set) var polling = true
7272 private( set) var websocket = false
7373
74- public init ( client: SocketEngineClient , opts : NSDictionary ? ) {
74+ init ( client: SocketEngineClient , options : Set < SocketIOClientOption > ) {
7575 self . client = client
76- session = NSURLSession ( configuration: . defaultSessionConfiguration( ) ,
77- delegate: opts ? [ " sessionDelegate " ] as? NSURLSessionDelegate ,
78- delegateQueue: workQueue)
79- forceWebsockets = opts ? [ " forceWebsockets " ] as? Bool ?? false
80- forcePolling = opts ? [ " forcePolling " ] as? Bool ?? false
81- cookies = opts ? [ " cookies " ] as? [ NSHTTPCookie ]
82- socketPath = opts ? [ " path " ] as? String ?? " "
83- extraHeaders = opts ? [ " extraHeaders " ] as? [ String : String ]
76+ for option in options {
77+ switch option {
78+ case . SessionDelegate( let delegate) :
79+ session = NSURLSession ( configuration: . defaultSessionConfiguration( ) ,
80+ delegate: delegate,
81+ delegateQueue: workQueue)
82+ case . ForcePolling( let force) :
83+ forcePolling = force
84+ case . ForceWebsockets( let force) :
85+ forceWebsockets = force
86+ case . Cookies( let cookies) :
87+ self . cookies = cookies
88+ case . Path( let path) :
89+ socketPath = path
90+ case . ExtraHeaders( let headers) :
91+ extraHeaders = headers
92+ default :
93+ continue
94+ }
95+ }
96+ }
97+
98+ public convenience init ( client: SocketEngineClient , options: NSDictionary ? ) {
99+ self . init ( client: client,
100+ options: SocketIOClientOption . NSDictionaryToSocketOptionsSet ( options ?? [ : ] ) )
84101 }
85102
86103 deinit {
0 commit comments