Merge pull request #1058 from OneSman7/support-cookies-for-web-socket

Added passing cookies from long polling session to web scoket
This commit is contained in:
Erik Little 2018-07-18 10:47:50 -04:00 committed by GitHub
commit 95aa544275
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 5 deletions

View File

@ -281,7 +281,7 @@ open class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePollable, So
private func createWebSocketAndConnect() { private func createWebSocketAndConnect() {
var req = URLRequest(url: urlWebSocketWithSid) var req = URLRequest(url: urlWebSocketWithSid)
addHeaders(to: &req) addHeaders(to: &req, includingCookies: session?.configuration.httpCookieStorage?.cookies)
ws = WebSocket(request: req) ws = WebSocket(request: req)
ws?.callbackQueue = engineQueue ws?.callbackQueue = engineQueue

View File

@ -155,9 +155,12 @@ extension SocketEngineSpec {
return com.url! return com.url!
} }
func addHeaders(to req: inout URLRequest) { func addHeaders(to req: inout URLRequest, includingCookies additionalCookies: [HTTPCookie]? = nil) {
if let cookies = cookies { var cookiesToAdd: [HTTPCookie] = cookies ?? []
req.allHTTPHeaderFields = HTTPCookie.requestHeaderFields(with: cookies) cookiesToAdd += additionalCookies ?? []
if !cookiesToAdd.isEmpty {
req.allHTTPHeaderFields = HTTPCookie.requestHeaderFields(with: cookiesToAdd)
} }
if let extraHeaders = extraHeaders { if let extraHeaders = extraHeaders {