Merge pull request #161 from lightsprint09/logger
Logger + Missing Test code
This commit is contained in:
commit
0cfdd0b005
@ -9,7 +9,8 @@
|
||||
import XCTest
|
||||
|
||||
class AbstractSocketTest: XCTestCase {
|
||||
static let serverURL = "milkbartube.com:6979"
|
||||
static let testLocal = false
|
||||
static let serverURL = AbstractSocketTest.testLocal ? "localhost:6979" : "milkbartube.com:6979"
|
||||
static let TEST_TIMEOUT = 8.0
|
||||
static var socket:SocketIOClient!
|
||||
var testKind:TestKind?
|
||||
@ -22,6 +23,7 @@ class AbstractSocketTest: XCTestCase {
|
||||
XCTAssertTrue(AbstractSocketTest.socket.status == SocketIOClientStatus.NotConnected)
|
||||
AbstractSocketTest.socket.on("connect") {data, ack in
|
||||
XCTAssertEqual(AbstractSocketTest.socket.status, SocketIOClientStatus.Connected)
|
||||
XCTAssertFalse(AbstractSocketTest.socket.secure)
|
||||
if let expection = expection {
|
||||
expection.fulfill()
|
||||
}
|
||||
|
||||
@ -21,6 +21,8 @@ class SocketAcknowledgementTest: AbstractSocketTest {
|
||||
"forcePolling": false,
|
||||
"forceWebsockets": false,// default false
|
||||
"path": ""])
|
||||
}else {
|
||||
AbstractSocketTest.socket.leaveNamespace()
|
||||
}
|
||||
|
||||
openConnection()
|
||||
|
||||
@ -22,6 +22,8 @@ class SocketEmitTest: AbstractSocketTest {
|
||||
"forceWebsockets": false,// default false
|
||||
"path": ""]
|
||||
)
|
||||
}else {
|
||||
AbstractSocketTest.socket.leaveNamespace()
|
||||
}
|
||||
|
||||
openConnection()
|
||||
|
||||
@ -22,6 +22,8 @@ class SocketNamespaceAcknowledgementTest: AbstractSocketTest {
|
||||
"forceWebsockets": false,// default false
|
||||
"path": "",
|
||||
"nsp": "/swift"])
|
||||
}else {
|
||||
AbstractSocketTest.socket.joinNamespace("/swift")
|
||||
}
|
||||
|
||||
openConnection()
|
||||
|
||||
@ -22,6 +22,8 @@ class SocketNamespaceEmitTest: AbstractSocketTest {
|
||||
"forceWebsockets": false,// default false
|
||||
"path": "",
|
||||
"nsp": "/swift"])
|
||||
}else {
|
||||
AbstractSocketTest.socket.joinNamespace("/swift")
|
||||
}
|
||||
|
||||
openConnection()
|
||||
|
||||
@ -24,9 +24,7 @@
|
||||
|
||||
import Foundation
|
||||
|
||||
public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
|
||||
public let logType = "SocketEngine"
|
||||
|
||||
public final class SocketEngine: NSObject, WebSocketDelegate {
|
||||
private typealias Probe = (msg: String, type: PacketType, data: [NSData]?)
|
||||
private typealias ProbeWaitQueue = [Probe]
|
||||
|
||||
@ -199,7 +197,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
|
||||
|
||||
private func doFastUpgrade() {
|
||||
if waitingForPoll {
|
||||
Logger.err("Outstanding poll when switched to WebSockets," +
|
||||
Logger.error("Outstanding poll when switched to WebSockets," +
|
||||
"we'll probably disconnect soon. You should report this.", client: self, altType: nil)
|
||||
}
|
||||
|
||||
@ -248,7 +246,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
|
||||
if this.polling {
|
||||
this.handlePollingFailed(err?.localizedDescription ?? "Error")
|
||||
} else {
|
||||
Logger.err(err?.localizedDescription ?? "Error", client: this, altType: nil)
|
||||
Logger.error(err?.localizedDescription ?? "Error", client: this, altType: nil)
|
||||
}
|
||||
return
|
||||
}
|
||||
@ -412,7 +410,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
Logger.err("Error parsing open packet", client: self, altType: nil)
|
||||
Logger.error("Error parsing open packet", client: self, altType: nil)
|
||||
return
|
||||
}
|
||||
|
||||
@ -448,7 +446,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
|
||||
|
||||
public func open(opts: [String: AnyObject]? = nil) {
|
||||
if connected {
|
||||
Logger.err("Tried to open while connected", client: self, altType: nil)
|
||||
Logger.error("Tried to open while connected", client: self, altType: nil)
|
||||
client?.didError("Tried to open while connected")
|
||||
|
||||
return
|
||||
@ -512,7 +510,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
|
||||
length += chr
|
||||
} else {
|
||||
if length == "" || testLength(length, n: &n) {
|
||||
Logger.err("Parsing error: %@", client: self, altType: nil, args: str)
|
||||
Logger.error("Parsing error: %@", client: self, altType: nil, args: str)
|
||||
handlePollingFailed("Error parsing XHR message")
|
||||
return
|
||||
}
|
||||
@ -520,7 +518,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
|
||||
msg = String(strArray[i+1...i+n])
|
||||
|
||||
if let lengthInt = Int(length) where lengthInt != msg.characters.count {
|
||||
Logger.err("Parsing error: %@", client: self, altType: nil, args: str)
|
||||
Logger.error("Parsing error: %@", client: self, altType: nil, args: str)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
|
||||
import Foundation
|
||||
|
||||
public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient {
|
||||
public final class SocketIOClient: NSObject, SocketEngineClient {
|
||||
private var anyHandler: ((SocketAnyEvent) -> Void)?
|
||||
private var currentReconnectAttempt = 0
|
||||
private var handlers = ContiguousArray<SocketEventHandler>()
|
||||
@ -38,7 +38,6 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
|
||||
|
||||
public let emitQueue = dispatch_queue_create("emitQueue", DISPATCH_QUEUE_SERIAL)
|
||||
public let handleQueue: dispatch_queue_t!
|
||||
public let logType = "SocketClient"
|
||||
public let socketURL: String
|
||||
|
||||
public private(set) var engine: SocketEngine?
|
||||
@ -224,7 +223,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
|
||||
|
||||
/// error
|
||||
public func didError(reason: AnyObject) {
|
||||
Logger.err("%@", client: self, altType: nil, args: reason)
|
||||
Logger.error("%@", client: self, altType: nil, args: reason)
|
||||
|
||||
handleEvent("error", data: reason as? [AnyObject] ?? [reason],
|
||||
isInternalMessage: true)
|
||||
|
||||
@ -26,24 +26,18 @@ import Foundation
|
||||
|
||||
@objc public enum SocketIOClientStatus: Int, CustomStringConvertible {
|
||||
public var description: String {
|
||||
let des: String
|
||||
|
||||
switch rawValue {
|
||||
case 0:
|
||||
des = "Not Connected"
|
||||
case 1:
|
||||
des = "Closed"
|
||||
case 2:
|
||||
des = "Connecting"
|
||||
case 3:
|
||||
des = "Connected"
|
||||
case 4:
|
||||
des = "Reconnecting"
|
||||
default:
|
||||
des = "Unknown State"
|
||||
switch self {
|
||||
case NotConnected:
|
||||
return "Not Connected"
|
||||
case Closed:
|
||||
return "Closed"
|
||||
case Connecting:
|
||||
return "Connecting"
|
||||
case Connected:
|
||||
return "Connected"
|
||||
case Reconnecting:
|
||||
return "Reconnecting"
|
||||
}
|
||||
|
||||
return des
|
||||
}
|
||||
|
||||
case NotConnected, Closed, Connecting, Connected, Reconnecting
|
||||
|
||||
@ -26,43 +26,34 @@ import Foundation
|
||||
|
||||
var Logger: SocketLogger = DefaultSocketLogger()
|
||||
|
||||
public protocol SocketLogClient {
|
||||
/// The type of object being logged
|
||||
var logType: String {get}
|
||||
}
|
||||
|
||||
public protocol SocketLogger {
|
||||
/// Whether to log or not
|
||||
var log: Bool {get set}
|
||||
|
||||
/// Normal log messages
|
||||
func log(message: String, client: SocketLogClient, altType: String?, args: AnyObject...)
|
||||
func log(message: String, client: AnyObject, altType: String?, args: AnyObject...)
|
||||
|
||||
/// Error Messages
|
||||
func err(message: String, client: SocketLogClient, altType: String?, args: AnyObject...)
|
||||
func error(message: String, client: AnyObject, altType: String?, args: AnyObject...)
|
||||
}
|
||||
|
||||
public extension SocketLogger {
|
||||
func log(message: String, client: SocketLogClient, altType: String?, args: AnyObject...) {
|
||||
if !log {
|
||||
return
|
||||
func log(message: String, client: AnyObject, altType: String?, args: AnyObject...) {
|
||||
abstractLog("Log", message: message, client: client, altType: altType, args: args)
|
||||
}
|
||||
|
||||
func error(message: String, client: AnyObject, altType: String?, args: AnyObject...) {
|
||||
abstractLog("ERROR", message: message, client: client, altType: altType, args: args)
|
||||
|
||||
}
|
||||
|
||||
private func abstractLog(type:String, message: String, client: AnyObject, altType: String?, args:Array<AnyObject>) {
|
||||
guard log else { return }
|
||||
|
||||
let newArgs = args.map {arg -> CVarArgType in String(arg)}
|
||||
let replaced = String(format: message, arguments: newArgs)
|
||||
|
||||
NSLog("%@: %@", altType ?? client.logType, replaced)
|
||||
}
|
||||
|
||||
func err(message: String, client: SocketLogClient, altType: String?, args: AnyObject...) {
|
||||
if !log {
|
||||
return
|
||||
}
|
||||
|
||||
let newArgs = args.map {arg -> CVarArgType in String(arg)}
|
||||
let replaced = String(format: message, arguments: newArgs)
|
||||
|
||||
NSLog("ERROR %@: %@", altType ?? client.logType, replaced)
|
||||
let sourceString = NSStringFromClass(object_getClass(client))
|
||||
NSLog("%@ %@: %@",type, altType ?? sourceString, replaced)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -210,7 +210,7 @@ class SocketParser {
|
||||
|
||||
static func parseBinaryData(data: NSData, socket: SocketIOClient) {
|
||||
if socket.waitingData.count == 0 {
|
||||
Logger.err("Got data when not remaking packet", client: socket, altType: "SocketParser")
|
||||
Logger.error("Got data when not remaking packet", client: socket, altType: "SocketParser")
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user