@@ -30,7 +30,7 @@ extension String {
3030 }
3131}
3232
33- public final class SocketEngine : NSObject , WebSocketDelegate {
33+ public final class SocketEngine : NSObject , WebSocketDelegate , SocketLogClient {
3434 private typealias Probe = ( msg: String , type: PacketType , data: ContiguousArray < NSData > ? )
3535 private typealias ProbeWaitQueue = [ Probe ]
3636
@@ -62,6 +62,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
6262
6363 weak var client : SocketEngineClient ?
6464 var cookies : [ NSHTTPCookie ] ?
65+ var log = false
6566 var pingInterval : Int ?
6667 var polling : Bool {
6768 return self . _polling
@@ -93,11 +94,12 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
9394 }
9495
9596 public init ( client: SocketEngineClient , forcePolling: Bool ,
96- forceWebsockets: Bool , withCookies cookies: [ NSHTTPCookie ] ? ) {
97+ forceWebsockets: Bool , withCookies cookies: [ NSHTTPCookie ] ? , logging : Bool ) {
9798 self . client = client
9899 self . forcePolling = forcePolling
99100 self . forceWebsockets = forceWebsockets
100101 self . cookies = cookies
102+ self . log = logging
101103 self . session = NSURLSession ( configuration: NSURLSessionConfiguration . ephemeralSessionConfiguration ( ) ,
102104 delegate: nil , delegateQueue: self . workQueue)
103105 }
@@ -181,8 +183,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
181183
182184 private func doFastUpgrade( ) {
183185 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 )
186188 }
187189
188190 self . sendWebSocketMessage ( " " , withType: PacketType . UPGRADE, datas: nil )
@@ -211,7 +213,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
211213
212214 req. cachePolicy = NSURLRequestCachePolicy . ReloadIgnoringLocalAndRemoteCacheData
213215
214- // NSLog("Doing request: \(req)")
216+ SocketLogger . log ( " Engine: Doing polling request: \( req) " , client: self )
217+
215218 self . session. dataTaskWithRequest ( req) { [ weak self] data, res, err in
216219 if self == nil {
217220 return
@@ -225,7 +228,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
225228 return
226229 }
227230
228- // NSLog(" Got response: \(res)")
231+ SocketLogger . log ( " Engine: Got polling response: \( res) " , client : self ! )
229232
230233 if let str = NSString ( data: data, encoding: NSUTF8StringEncoding) as? String {
231234 dispatch_async ( self !. parseQueue) {
@@ -245,7 +248,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
245248 }
246249
247250 private func flushProbeWait( ) {
248- // NSLog("flushing probe wait")
251+ SocketLogger . log ( " Engine: Flushing probe wait " , client: self )
252+
249253 dispatch_async ( self . emitQueue) { [ weak self] in
250254 if self == nil {
251255 return
@@ -294,8 +298,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
294298
295299 self . waitingForPost = true
296300
297- // NSLog("posting: \(postStr)")
298- // NSLog("Posting with WS status of: \(self.websocket)")
301+ SocketLogger . log ( " Engine: POSTing: \( postStr) " , client: self )
299302
300303 self . session. dataTaskWithRequest ( req) { [ weak self] data, res, err in
301304 if self == nil {
@@ -349,6 +352,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
349352
350353 public func open( opts: [ String : AnyObject ] ? = nil ) {
351354 if self . connected {
355+ SocketLogger . err ( " Engine: Tried to open while connected " , client: self )
356+
352357 self . client? . didError ( " Engine tried to open while connected " )
353358 return
354359 }
@@ -405,7 +410,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
405410 length += chr
406411 } else {
407412 if length == " " || testLength ( length, & n) {
408- NSLog ( " parsing error: \( str) " )
413+ SocketLogger . err ( " Engine: parsing error: \( str) " , client: self )
414+
409415 self . handlePollingFailed ( " Error parsing XHR message " )
410416 return
411417 }
@@ -443,7 +449,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
443449 }
444450
445451 private func parseEngineMessage( var message: String , fromPolling: Bool ) {
446- // NSLog("Engine got message: \(message)")
452+ SocketLogger . log ( " Engine: Got message: \( message) " , client: self )
453+
447454 if fromPolling {
448455 fixDoubleUTF8 ( & message)
449456 }
@@ -555,7 +562,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
555562 /// Only call on emitQueue
556563 private func sendPollMessage( var msg: String , withType type: PacketType ,
557564 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+
559567 doubleEncodeUTF8 ( & msg)
560568 let strMsg = " \( type. rawValue) \( msg) "
561569
@@ -578,7 +586,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
578586 /// Only call on emitQueue
579587 private func sendWebSocketMessage( str: String , withType type: PacketType ,
580588 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+
582591 self . ws? . writeString ( " \( type. rawValue) \( str) " )
583592
584593 if datas != nil {
@@ -607,7 +616,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
607616
608617 private func upgradeTransport( ) {
609618 if self . websocketConnected {
610- // NSLog("Doing fast upgrade")
619+ SocketLogger . log ( " Engine: Upgrading transport to WebSockets " , client: self )
620+
611621 // Do a fast upgrade
612622 // At this point, we should not send anymore polling messages-
613623 self . fastUpgrade = true
@@ -622,10 +632,10 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
622632 }
623633
624634 if self !. websocket {
625- // NSLog("writing ws: \(msg):\(data)")
635+ SocketLogger . log ( " Engine: Writing ws: \( msg) : \( data) " , client : self ! )
626636 self ? . sendWebSocketMessage ( msg, withType: type, datas: data)
627637 } else {
628- // NSLog("writing poll: \(msg):\(data)")
638+ SocketLogger . log ( " Engine: Writing poll: \( msg) : \( data) " , client : self ! )
629639 self ? . sendPollMessage ( msg, withType: type, datas: data)
630640 }
631641 }
0 commit comments