This commit is contained in:
Erik 2015-04-27 09:48:49 -04:00
parent 918f176c56
commit a5b8202e45
2 changed files with 16 additions and 1 deletions

View File

@ -185,7 +185,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
} }
private func createWebsocket(andConnect connect:Bool) { private func createWebsocket(andConnect connect:Bool) {
self.ws = WebSocket(url: NSURL(string: self.urlWebSocket! + "&sid=\(self.sid)")!) self.ws = WebSocket(url: NSURL(string: self.urlWebSocket! + "&sid=\(self.sid)")!,
cookies: self.cookies)
self.ws?.queue = self.handleQueue self.ws?.queue = self.handleQueue
self.ws?.delegate = self self.ws?.delegate = self

View File

@ -78,6 +78,7 @@ public class WebSocket : NSObject, NSStreamDelegate {
var buffer: NSMutableData? var buffer: NSMutableData?
} }
private var cookies:[NSHTTPCookie]?
public weak var delegate: WebSocketDelegate? public weak var delegate: WebSocketDelegate?
private var url: NSURL private var url: NSURL
private var inputStream: NSInputStream? private var inputStream: NSInputStream?
@ -103,6 +104,11 @@ public class WebSocket : NSObject, NSStreamDelegate {
public init(url: NSURL) { public init(url: NSURL) {
self.url = url self.url = url
} }
public convenience init(url: NSURL, cookies:[NSHTTPCookie]?) {
self.init(url: url)
self.cookies = cookies
}
//used for setting protocols. //used for setting protocols.
public convenience init(url: NSURL, protocols: Array<String>) { public convenience init(url: NSURL, protocols: Array<String>) {
self.init(url: url) self.init(url: url)
@ -175,6 +181,14 @@ public class WebSocket : NSObject, NSStreamDelegate {
port = 80 port = 80
} }
} }
if self.cookies != nil {
let headers = NSHTTPCookie.requestHeaderFieldsWithCookies(self.cookies!)
for (key, value) in headers {
self.addHeader(urlRequest, key: key as! String, val: value as! String)
}
}
self.addHeader(urlRequest, key: headerWSUpgradeName, val: headerWSUpgradeValue) self.addHeader(urlRequest, key: headerWSUpgradeName, val: headerWSUpgradeValue)
self.addHeader(urlRequest, key: headerWSConnectionName, val: headerWSConnectionValue) self.addHeader(urlRequest, key: headerWSConnectionName, val: headerWSConnectionValue)
if let protocols = optionalProtocols { if let protocols = optionalProtocols {