merge master

This commit is contained in:
Erik 2015-03-18 14:03:53 -04:00
commit bb26dd05f8
3 changed files with 24 additions and 9 deletions

View File

@ -68,11 +68,12 @@ Example
```swift
// opts can be omitted, will use default values
let socket = SocketIOClient(socketURL: "https://localhost:8080", opts: [
"reconnects": true, // default true
"reconnectAttempts": 5, // default -1 (infinite tries)
"reconnectWait": 5, // default 10
"reconnects": true, // Default is true
"reconnectAttempts": 5, // Default is -1 (infinite tries)
"reconnectWait": 5, // Default is 10
"nsp": "swift", // connects to the specified namespace. Default is /
"forcePolling": true // if true, the socket will only use XHR polling, default is false (polling/WebSockets)
"forcePolling": true, // if true, the socket will only use XHR polling, Default is false (polling/WebSockets)
"cookies": nil // An array of NSHTTPCookies. Passed during handshake. Default is nil
])
// Called on every event

View File

@ -67,6 +67,7 @@ public class SocketEngine: NSObject, WebSocketDelegate {
var connected:Bool {
return self._connected
}
var cookies:[NSHTTPCookie]?
var pingInterval:Int?
var polling:Bool {
return self._polling
@ -79,9 +80,10 @@ public class SocketEngine: NSObject, WebSocketDelegate {
}
var ws:WebSocket?
init(client:SocketIOClient, forcePolling:Bool = false) {
init(client:SocketIOClient, forcePolling:Bool = false, withCookies cookies:[NSHTTPCookie]?) {
self.client = client
self.forcePolling = forcePolling
self.cookies = cookies
self.session = NSURLSession(configuration: NSURLSessionConfiguration.ephemeralSessionConfiguration(),
delegate: nil, delegateQueue: self.workQueue)
}
@ -289,7 +291,12 @@ public class SocketEngine: NSObject, WebSocketDelegate {
let (urlPolling, urlWebSocket) = self.createURLs(params: opts)
self.urlPolling = urlPolling
self.urlWebSocket = urlWebSocket
let reqPolling = NSURLRequest(URL: NSURL(string: urlPolling + "&b64=1")!)
let reqPolling = NSMutableURLRequest(URL: NSURL(string: urlPolling + "&b64=1")!)
if self.cookies != nil {
let headers = NSHTTPCookie.requestHeaderFieldsWithCookies(self.cookies!)
reqPolling.allHTTPHeaderFields = headers
}
self.session.dataTaskWithRequest(reqPolling) {[weak self] data, res, err in
var err2:NSError?
@ -473,10 +480,10 @@ public class SocketEngine: NSObject, WebSocketDelegate {
}
if self!.websocket {
// println("sending ws: \(msg):\(datas)")
// NSLog("sending ws: \(msg):\(datas)")
self?.sendWebSocketMessage(msg, withType: PacketType.MESSAGE, datas: datas)
} else {
// println("sending poll: \(msg):\(datas)")
// NSLog("sending poll: \(msg):\(datas)")
self?.sendPollMessage(msg, withType: PacketType.MESSAGE, datas: datas)
}
}

View File

@ -60,6 +60,7 @@ public class SocketIOClient: NSObject {
public var connecting:Bool {
return self._connecting
}
public var cookies:[NSHTTPCookie]?
public var engine:SocketEngine?
public var nsp:String?
public var reconnects = true
@ -107,13 +108,19 @@ public class SocketIOClient: NSObject {
if let polling = opts!["forcePolling"] as? Bool {
self.forcePolling = polling
}
if let cookies = opts!["cookies"] as? [NSHTTPCookie] {
self.cookies = cookies
}
} else {
self.reconnectAttempts = -1
}
super.init()
self.engine = SocketEngine(client: self, forcePolling: self.forcePolling)
self.engine = SocketEngine(client: self,
forcePolling: self.forcePolling,
withCookies: self.cookies)
}
public convenience init(socketURL:String, options:NSDictionary?) {