Merge pull request #55 from ramki982/master

Adding support for self signed certificates by passing in a NSURLSessionDelegate optional
This commit is contained in:
Erik Little 2015-04-17 07:44:23 -04:00
commit f38cf9ed3a
2 changed files with 12 additions and 5 deletions

5
SocketIOClientSwift/SocketEngine.swift Normal file → Executable file
View File

@ -23,7 +23,6 @@
// THE SOFTWARE. // THE SOFTWARE.
import Foundation import Foundation
extension String { extension String {
private var length:Int { private var length:Int {
return count(self) return count(self)
@ -93,14 +92,14 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
} }
public init(client:SocketEngineClient, forcePolling:Bool, public init(client:SocketEngineClient, forcePolling:Bool,
forceWebsockets:Bool, withCookies cookies:[NSHTTPCookie]?, logging:Bool) { forceWebsockets:Bool, withCookies cookies:[NSHTTPCookie]?, logging:Bool, withSessionDelegate sessionDelegate : NSURLSessionDelegate?) {
self.client = client self.client = client
self.forcePolling = forcePolling self.forcePolling = forcePolling
self.forceWebsockets = forceWebsockets self.forceWebsockets = forceWebsockets
self.cookies = cookies self.cookies = cookies
self.log = logging self.log = logging
self.session = NSURLSession(configuration: NSURLSessionConfiguration.ephemeralSessionConfiguration(), self.session = NSURLSession(configuration: NSURLSessionConfiguration.ephemeralSessionConfiguration(),
delegate: nil, delegateQueue: self.workQueue) delegate: sessionDelegate, delegateQueue: self.workQueue)
} }
public func close(#fast:Bool) { public func close(#fast:Bool) {

12
SocketIOClientSwift/SocketIOClient.swift Normal file → Executable file
View File

@ -24,7 +24,7 @@
import Foundation import Foundation
public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient { public final class SocketIOClient: NSObject, NSURLSessionDelegate, SocketEngineClient, SocketLogClient {
private lazy var params = [String: AnyObject]() private lazy var params = [String: AnyObject]()
private var anyHandler:((SocketAnyEvent) -> Void)? private var anyHandler:((SocketAnyEvent) -> Void)?
private var _closed = false private var _closed = false
@ -40,6 +40,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
private var _reconnecting = false private var _reconnecting = false
private var reconnectTimer:NSTimer? private var reconnectTimer:NSTimer?
let reconnectAttempts:Int! let reconnectAttempts:Int!
let logType = "SocketClient" let logType = "SocketClient"
var ackHandlers = SocketAckMap() var ackHandlers = SocketAckMap()
@ -47,6 +48,8 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
var log = false var log = false
var waitingData = ContiguousArray<SocketPacket>() var waitingData = ContiguousArray<SocketPacket>()
var sessionDelegate : NSURLSessionDelegate?
public let socketURL:String public let socketURL:String
public let handleAckQueue = dispatch_queue_create("handleAckQueue", DISPATCH_QUEUE_SERIAL) public let handleAckQueue = dispatch_queue_create("handleAckQueue", DISPATCH_QUEUE_SERIAL)
public let handleQueue = dispatch_queue_create("handleQueue", DISPATCH_QUEUE_SERIAL) public let handleQueue = dispatch_queue_create("handleQueue", DISPATCH_QUEUE_SERIAL)
@ -90,6 +93,10 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
// Set options // Set options
if opts != nil { if opts != nil {
if let sessionDelegate = opts!["sessionDelegate"] as? NSURLSessionDelegate {
self.sessionDelegate = sessionDelegate
}
if let cookies = opts!["cookies"] as? [NSHTTPCookie] { if let cookies = opts!["cookies"] as? [NSHTTPCookie] {
self.cookies = cookies self.cookies = cookies
} }
@ -145,7 +152,8 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
forcePolling: self.forcePolling, forcePolling: self.forcePolling,
forceWebsockets: self.forceWebsockets, forceWebsockets: self.forceWebsockets,
withCookies: self.cookies, withCookies: self.cookies,
logging: self.log) logging: self.log,
withSessionDelegate : self.sessionDelegate)
} }
/** /**