@@ -30,7 +30,7 @@ extension String {
30
30
}
31
31
}
32
32
33
- public final class SocketEngine : NSObject , WebSocketDelegate {
33
+ public final class SocketEngine : NSObject , WebSocketDelegate , SocketLogClient {
34
34
private typealias Probe = ( msg: String , type: PacketType , data: ContiguousArray < NSData > ? )
35
35
private typealias ProbeWaitQueue = [ Probe ]
36
36
@@ -62,6 +62,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
62
62
63
63
weak var client : SocketEngineClient ?
64
64
var cookies : [ NSHTTPCookie ] ?
65
+ var log = false
65
66
var pingInterval : Int ?
66
67
var polling : Bool {
67
68
return self . _polling
@@ -93,11 +94,12 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
93
94
}
94
95
95
96
public init ( client: SocketEngineClient , forcePolling: Bool ,
96
- forceWebsockets: Bool , withCookies cookies: [ NSHTTPCookie ] ? ) {
97
+ forceWebsockets: Bool , withCookies cookies: [ NSHTTPCookie ] ? , logging : Bool ) {
97
98
self . client = client
98
99
self . forcePolling = forcePolling
99
100
self . forceWebsockets = forceWebsockets
100
101
self . cookies = cookies
102
+ self . log = logging
101
103
self . session = NSURLSession ( configuration: NSURLSessionConfiguration . ephemeralSessionConfiguration ( ) ,
102
104
delegate: nil , delegateQueue: self . workQueue)
103
105
}
@@ -181,8 +183,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
181
183
182
184
private func doFastUpgrade( ) {
183
185
if self . waitingForPoll {
184
- NSLog ( " Outstanding poll when switched to websockets , " +
185
- " we'll probably disconnect soon. You should report this. " )
186
+ SocketLogger . err ( " Engine: Outstanding poll when switched to WebSockets ," +
187
+ " we'll probably disconnect soon. You should report this. " , client : self )
186
188
}
187
189
188
190
self . sendWebSocketMessage ( " " , withType: PacketType . UPGRADE, datas: nil )
@@ -211,7 +213,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
211
213
212
214
req. cachePolicy = NSURLRequestCachePolicy . ReloadIgnoringLocalAndRemoteCacheData
213
215
214
- // NSLog("Doing request: \(req)")
216
+ SocketLogger . log ( " Engine: Doing polling request: \( req) " , client: self )
217
+
215
218
self . session. dataTaskWithRequest ( req) { [ weak self] data, res, err in
216
219
if self == nil {
217
220
return
@@ -225,7 +228,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
225
228
return
226
229
}
227
230
228
- // NSLog(" Got response: \(res)")
231
+ SocketLogger . log ( " Engine: Got polling response: \( res) " , client : self ! )
229
232
230
233
if let str = NSString ( data: data, encoding: NSUTF8StringEncoding) as? String {
231
234
dispatch_async ( self !. parseQueue) {
@@ -245,7 +248,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
245
248
}
246
249
247
250
private func flushProbeWait( ) {
248
- // NSLog("flushing probe wait")
251
+ SocketLogger . log ( " Engine: Flushing probe wait " , client: self )
252
+
249
253
dispatch_async ( self . emitQueue) { [ weak self] in
250
254
if self == nil {
251
255
return
@@ -294,8 +298,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
294
298
295
299
self . waitingForPost = true
296
300
297
- // NSLog("posting: \(postStr)")
298
- // NSLog("Posting with WS status of: \(self.websocket)")
301
+ SocketLogger . log ( " Engine: POSTing: \( postStr) " , client: self )
299
302
300
303
self . session. dataTaskWithRequest ( req) { [ weak self] data, res, err in
301
304
if self == nil {
@@ -349,6 +352,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
349
352
350
353
public func open( opts: [ String : AnyObject ] ? = nil ) {
351
354
if self . connected {
355
+ SocketLogger . err ( " Engine: Tried to open while connected " , client: self )
356
+
352
357
self . client? . didError ( " Engine tried to open while connected " )
353
358
return
354
359
}
@@ -405,7 +410,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
405
410
length += chr
406
411
} else {
407
412
if length == " " || testLength ( length, & n) {
408
- NSLog ( " parsing error: \( str) " )
413
+ SocketLogger . err ( " Engine: parsing error: \( str) " , client: self )
414
+
409
415
self . handlePollingFailed ( " Error parsing XHR message " )
410
416
return
411
417
}
@@ -443,7 +449,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
443
449
}
444
450
445
451
private func parseEngineMessage( var message: String , fromPolling: Bool ) {
446
- // NSLog("Engine got message: \(message)")
452
+ SocketLogger . log ( " Engine: Got message: \( message) " , client: self )
453
+
447
454
if fromPolling {
448
455
fixDoubleUTF8 ( & message)
449
456
}
@@ -555,7 +562,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
555
562
/// Only call on emitQueue
556
563
private func sendPollMessage( var msg: String , withType type: PacketType ,
557
564
datas: ContiguousArray < NSData > ? = nil ) {
558
- // println("Sending poll: \(msg) as type: \(type.rawValue)")
565
+ SocketLogger . log ( " Engine: Sending poll: \( msg) as type: \( type. rawValue) " , client: self )
566
+
559
567
doubleEncodeUTF8 ( & msg)
560
568
let strMsg = " \( type. rawValue) \( msg) "
561
569
@@ -578,7 +586,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
578
586
/// Only call on emitQueue
579
587
private func sendWebSocketMessage( str: String , withType type: PacketType ,
580
588
datas: ContiguousArray < NSData > ? = nil ) {
581
- // println("Sending ws: \(str) as type: \(type.rawValue)")
589
+ SocketLogger . log ( " Engine: Sending ws: \( str) as type: \( type. rawValue) " , client: self )
590
+
582
591
self . ws? . writeString ( " \( type. rawValue) \( str) " )
583
592
584
593
if datas != nil {
@@ -607,7 +616,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
607
616
608
617
private func upgradeTransport( ) {
609
618
if self . websocketConnected {
610
- // NSLog("Doing fast upgrade")
619
+ SocketLogger . log ( " Engine: Upgrading transport to WebSockets " , client: self )
620
+
611
621
// Do a fast upgrade
612
622
// At this point, we should not send anymore polling messages-
613
623
self . fastUpgrade = true
@@ -622,10 +632,10 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
622
632
}
623
633
624
634
if self !. websocket {
625
- // NSLog("writing ws: \(msg):\(data)")
635
+ SocketLogger . log ( " Engine: Writing ws: \( msg) : \( data) " , client : self ! )
626
636
self ? . sendWebSocketMessage ( msg, withType: type, datas: data)
627
637
} else {
628
- // NSLog("writing poll: \(msg):\(data)")
638
+ SocketLogger . log ( " Engine: Writing poll: \( msg) : \( data) " , client : self ! )
629
639
self ? . sendPollMessage ( msg, withType: type, datas: data)
630
640
}
631
641
}
0 commit comments