diff --git a/SocketIOClientSwift/SocketEngine.swift b/SocketIOClientSwift/SocketEngine.swift index 909787c..2bdd055 100644 --- a/SocketIOClientSwift/SocketEngine.swift +++ b/SocketIOClientSwift/SocketEngine.swift @@ -53,10 +53,12 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient { private var waitingForPost = false private var _websocket = false private var websocketConnected = false + + let logType = "SocketEngine" + var connected:Bool { return self._connected } - weak var client:SocketEngineClient? var cookies:[NSHTTPCookie]? var log = false @@ -180,7 +182,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient { private func doFastUpgrade() { if self.waitingForPoll { - SocketLogger.err("Engine: Outstanding poll when switched to WebSockets," + + SocketLogger.err("Outstanding poll when switched to WebSockets," + "we'll probably disconnect soon. You should report this.", client: self) } @@ -210,7 +212,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient { req.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData - SocketLogger.log("Engine: Doing polling request", client: self) + SocketLogger.log("Doing polling request", client: self) self.session.dataTaskWithRequest(req) {[weak self] data, res, err in if self == nil { @@ -225,7 +227,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient { return } - SocketLogger.log("Engine: Got polling response", client: self!) + SocketLogger.log("Got polling response", client: self!) if let str = NSString(data: data, encoding: NSUTF8StringEncoding) as? String { dispatch_async(self!.parseQueue) { @@ -245,7 +247,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient { } private func flushProbeWait() { - SocketLogger.log("Engine: Flushing probe wait", client: self) + SocketLogger.log("Flushing probe wait", client: self) dispatch_async(self.emitQueue) {[weak self] in if self == nil { @@ -295,7 +297,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient { self.waitingForPost = true - SocketLogger.log("Engine: POSTing: \(postStr)", client: self) + SocketLogger.log("POSTing: \(postStr)", client: self) self.session.dataTaskWithRequest(req) {[weak self] data, res, err in if self == nil { @@ -349,13 +351,13 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient { public func open(opts:[String: AnyObject]? = nil) { if self.connected { - SocketLogger.err("Engine: Tried to open while connected", client: self) + SocketLogger.err("Tried to open while connected", client: self) - self.client?.didError("Engine tried to open while connected") + self.client?.didError("Tried to open while connected") return } - SocketLogger.log("Engine: Starting engine", client: self) + SocketLogger.log("Starting engine", client: self) self.closed = false let (urlPolling, urlWebSocket) = self.createURLs(opts) @@ -409,7 +411,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient { length += chr } else { if length == "" || testLength(length, &n) { - SocketLogger.err("Engine: parsing error: \(str)", client: self) + SocketLogger.err("Parsing error: \(str)", client: self) self.handlePollingFailed("Error parsing XHR message") return @@ -448,7 +450,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient { } private func parseEngineMessage(var message:String, fromPolling:Bool) { - SocketLogger.log("Engine: Got message: \(message)", client: self) + SocketLogger.log("Got message: \(message)", client: self) if fromPolling { fixDoubleUTF8(&message) @@ -561,7 +563,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient { /// Only call on emitQueue private func sendPollMessage(var msg:String, withType type:PacketType, datas:ContiguousArray? = nil) { - SocketLogger.log("Engine: Sending poll: \(msg) as type: \(type.rawValue)", client: self) + SocketLogger.log("Sending poll: \(msg) as type: \(type.rawValue)", client: self) doubleEncodeUTF8(&msg) let strMsg = "\(type.rawValue)\(msg)" @@ -585,7 +587,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient { /// Only call on emitQueue private func sendWebSocketMessage(str:String, withType type:PacketType, datas:ContiguousArray? = nil) { - SocketLogger.log("Engine: Sending ws: \(str) as type: \(type.rawValue)", client: self) + SocketLogger.log("Sending ws: \(str) as type: \(type.rawValue)", client: self) self.ws?.writeString("\(type.rawValue)\(str)") @@ -615,7 +617,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient { private func upgradeTransport() { if self.websocketConnected { - SocketLogger.log("Engine: Upgrading transport to WebSockets", client: self) + SocketLogger.log("Upgrading transport to WebSockets", client: self) // Do a fast upgrade // At this point, we should not send anymore polling messages- @@ -631,10 +633,10 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient { } if self!.websocket { - SocketLogger.log("Engine: Writing ws: \(msg):\(data)", client: self!) + SocketLogger.log("Writing ws: \(msg):\(data)", client: self!) self?.sendWebSocketMessage(msg, withType: type, datas: data) } else { - SocketLogger.log("Engine: Writing poll: \(msg):\(data)", client: self!) + SocketLogger.log("Writing poll: \(msg):\(data)", client: self!) self?.sendPollMessage(msg, withType: type, datas: data) } } diff --git a/SocketIOClientSwift/SocketIOClient.swift b/SocketIOClientSwift/SocketIOClient.swift index d9e53a6..c8a0f5e 100644 --- a/SocketIOClientSwift/SocketIOClient.swift +++ b/SocketIOClientSwift/SocketIOClient.swift @@ -41,6 +41,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient private var reconnectTimer:NSTimer? let reconnectAttempts:Int! + let logType = "SocketClient" var ackHandlers = SocketAckMap() var currentAck = -1 var log = false @@ -138,7 +139,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient } private func addEngine() { - SocketLogger.log("Client: Adding engine", client: self) + SocketLogger.log("Adding engine", client: self) self.engine = SocketEngine(client: self, forcePolling: self.forcePolling, @@ -153,7 +154,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient Pass true to fast if you're closing from a background task */ public func close(#fast:Bool) { - SocketLogger.log("Client: Closing socket", client: self) + SocketLogger.log("Closing socket", client: self) self.reconnects = false self._connecting = false @@ -222,7 +223,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient } func didConnect() { - SocketLogger.log("Client: Socket connected", client: self) + SocketLogger.log("Socket connected", client: self) self._closed = false self._connected = true @@ -240,7 +241,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient /// error public func didError(reason:AnyObject) { - SocketLogger.err("Client: Error", client: self) + SocketLogger.err("Error", client: self) self.handleEvent("error", data: reason as? [AnyObject] ?? [reason], isInternalMessage: true) @@ -313,7 +314,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient SocketParser.parseForEmit(packet) str = packet.createMessageForEvent(event) - SocketLogger.log("Client: Emitting: \(str)", client: self) + SocketLogger.log("Emitting: \(str)", client: self) if packet.type == SocketPacket.PacketType.BINARY_EVENT { self.engine?.send(str, withData: packet.binary) @@ -335,7 +336,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient SocketParser.parseForEmit(packet) str = packet.createAck() - SocketLogger.log("Client: Emitting Ack: \(str)", client: self!) + SocketLogger.log("Emitting Ack: \(str)", client: self!) if packet.type == SocketPacket.PacketType.BINARY_ACK { self?.engine?.send(str, withData: packet.binary) @@ -351,7 +352,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient return } - SocketLogger.log("Client: Engine closed", client: self) + SocketLogger.log("Engine closed", client: self) self._closed = true self._connected = false @@ -363,7 +364,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient // Called when the socket gets an ack for something it sent func handleAck(ack:Int, data:AnyObject?) { - SocketLogger.log("Client: Handling ack: \(ack) with data: \(data)", client: self) + SocketLogger.log("Handling ack: \(ack) with data: \(data)", client: self) self.ackHandlers.executeAck(ack, items: (data as? [AnyObject]?) ?? (data != nil ? [data!] : nil)) @@ -379,7 +380,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient return } - SocketLogger.log("Client: Handling event: \(event) with data: \(data)", client: self) + SocketLogger.log("Handling event: \(event) with data: \(data)", client: self) if self.anyHandler != nil { dispatch_async(dispatch_get_main_queue()) {[weak self] in @@ -399,7 +400,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient } func joinNamespace() { - SocketLogger.log("Client: Joining namespace", client: self) + SocketLogger.log("Joining namespace", client: self) if self.nsp != "/" { self.engine?.send("0/\(self.nsp)", withData: nil) @@ -410,7 +411,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient Removes handler(s) */ public func off(event:String) { - SocketLogger.log("Client: Removing handler for event: \(event)", client: self) + SocketLogger.log("Removing handler for event: \(event)", client: self) self.handlers = self.handlers.filter {$0.event == event ? false : true} } @@ -419,7 +420,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient Adds a handler for an event. */ public func on(name:String, callback:NormalCallback) { - SocketLogger.log("Client: Adding handler for event: \(name)", client: self) + SocketLogger.log("Adding handler for event: \(name)", client: self) let handler = SocketEventHandler(event: name, callback: callback) self.handlers.append(handler) @@ -468,7 +469,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient } if self.reconnectTimer == nil { - SocketLogger.log("Client: Starting reconnect", client: self) + SocketLogger.log("Starting reconnect", client: self) self._reconnecting = true @@ -483,7 +484,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient } } - SocketLogger.log("Client: Trying to reconnect", client: self) + SocketLogger.log("Trying to reconnect", client: self) self.handleEvent("reconnectAttempt", data: [self.reconnectAttempts - self.currentReconnectAttempt], isInternalMessage: true) diff --git a/SocketIOClientSwift/SocketLogger.swift b/SocketIOClientSwift/SocketLogger.swift index d9531e5..a5f33a2 100644 --- a/SocketIOClientSwift/SocketLogger.swift +++ b/SocketIOClientSwift/SocketLogger.swift @@ -26,18 +26,19 @@ import Foundation protocol SocketLogClient { var log:Bool {get set} + var logType:String {get} } final class SocketLogger { - static func log(message:String, client:SocketLogClient) { + static func log(message:String, client:SocketLogClient, altType:String? = nil) { if client.log { - NSLog("%@", message) + NSLog("%@: %@", altType ?? client.logType, message) } } - static func err(message:String, client:SocketLogClient) { + static func err(message:String, client:SocketLogClient, altType:String? = nil) { if client.log { - NSLog("ERROR %@", message) + NSLog("ERROR %@: %@", altType ?? client.logType, message) } } } diff --git a/SocketIOClientSwift/SocketParser.swift b/SocketIOClientSwift/SocketParser.swift index 6dbe1b0..3673682 100644 --- a/SocketIOClientSwift/SocketParser.swift +++ b/SocketIOClientSwift/SocketParser.swift @@ -22,7 +22,7 @@ import Foundation -class SocketParser { +class SocketParser { private static let shredder = SocketParser.PacketShredder() // Translation of socket.io-parser#deconstructPacket @@ -185,7 +185,7 @@ class SocketParser { return nsp == "" && socket.nsp != "/" } - SocketLogger.log("Parser: Parsing \(stringMessage)", client: socket) + SocketLogger.log("Parsing \(stringMessage)", client: socket, altType: "SocketParser") let p:SocketPacket @@ -198,7 +198,7 @@ class SocketParser { // Don't call SocketPacket.description unless we need to if socket.log { - SocketLogger.log("Parser: Decoded packet as: \(p)", client: socket) + SocketLogger.log("Decoded packet as: \(p)", client: socket, altType: "SocketParser") } if p.type == SocketPacket.PacketType.EVENT { @@ -247,7 +247,7 @@ class SocketParser { // NSLog(data.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.allZeros)) if socket.waitingData.count == 0 { - SocketLogger.err("Parser: Got data when not remaking packet", client: socket) + SocketLogger.err("Got data when not remaking packet", client: socket, altType: "SocketParser") return }