|
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