|
24 | 24 |
|
25 | 25 | import Foundation |
26 | 26 |
|
27 | | -public final class SocketEngine : NSObject, SocketEnginePollable, SocketEngineWebsocket { |
| 27 | +public final class SocketEngine : NSObject, NSURLSessionDelegate, SocketEnginePollable, SocketEngineWebsocket { |
28 | 28 | public let emitQueue = dispatch_queue_create("com.socketio.engineEmitQueue", DISPATCH_QUEUE_SERIAL) |
29 | 29 | public let handleQueue = dispatch_queue_create("com.socketio.engineHandleQueue", DISPATCH_QUEUE_SERIAL) |
30 | 30 | public let parseQueue = dispatch_queue_create("com.socketio.engineParseQueue", DISPATCH_QUEUE_SERIAL) |
@@ -117,6 +117,8 @@ public final class SocketEngine : NSObject, SocketEnginePollable, SocketEngineWe |
117 | 117 |
|
118 | 118 | super.init() |
119 | 119 |
|
| 120 | + sessionDelegate = sessionDelegate ?? self |
| 121 | + |
120 | 122 | (urlPolling, urlWebSocket) = createURLs() |
121 | 123 | } |
122 | 124 |
|
@@ -205,9 +207,7 @@ public final class SocketEngine : NSObject, SocketEnginePollable, SocketEngineWe |
205 | 207 | } |
206 | 208 | } |
207 | 209 |
|
208 | | - dispatch_async(emitQueue) { |
209 | | - self.doLongPoll(reqPolling) |
210 | | - } |
| 210 | + doLongPoll(reqPolling) |
211 | 211 | } |
212 | 212 |
|
213 | 213 | private func createURLs() -> (NSURL, NSURL) { |
@@ -456,7 +456,7 @@ public final class SocketEngine : NSObject, SocketEnginePollable, SocketEngineWe |
456 | 456 | invalidated = false |
457 | 457 | session = NSURLSession(configuration: .defaultSessionConfiguration(), |
458 | 458 | delegate: sessionDelegate, |
459 | | - delegateQueue: NSOperationQueue()) |
| 459 | + delegateQueue: NSOperationQueue.mainQueue()) |
460 | 460 | sid = "" |
461 | 461 | waitingForPoll = false |
462 | 462 | waitingForPost = false |
@@ -549,3 +549,11 @@ public final class SocketEngine : NSObject, SocketEnginePollable, SocketEngineWe |
549 | 549 | } |
550 | 550 | } |
551 | 551 | } |
| 552 | + |
| 553 | +extension SocketEngine { |
| 554 | + public func URLSession(session: NSURLSession, didBecomeInvalidWithError error: NSError?) { |
| 555 | + DefaultSocketLogger.Logger.error("Engine URLSession became invalid", type: "SocketEngine") |
| 556 | + |
| 557 | + didError("Engine URLSession became invalid") |
| 558 | + } |
| 559 | +} |
0 commit comments