From c364f6a83233d3b4fd6616140c3e334d2d740c88 Mon Sep 17 00:00:00 2001 From: Erik Date: Sun, 14 Aug 2016 09:58:21 -0400 Subject: [PATCH] tweaks --- .../SocketIOClientConfigurationTest.swift | 2 +- Source/SocketExtensions.swift | 2 +- Source/SocketIOClient.swift | 7 ++-- Source/SocketPacket.swift | 38 ++++++------------- 4 files changed, 18 insertions(+), 31 deletions(-) diff --git a/SocketIO-MacTests/SocketIOClientConfigurationTest.swift b/SocketIO-MacTests/SocketIOClientConfigurationTest.swift index 7c78261..ee5dbdf 100644 --- a/SocketIO-MacTests/SocketIOClientConfigurationTest.swift +++ b/SocketIO-MacTests/SocketIOClientConfigurationTest.swift @@ -15,7 +15,7 @@ class TestSocketIOClientConfiguration: XCTestCase { override func setUp() { super.setUp() - config = [.Log(false), .ForceNew(true)] as SocketIOClientConfiguration + config = [.Log(false), .ForceNew(true)] } func testReplaceSameOption() { diff --git a/Source/SocketExtensions.swift b/Source/SocketExtensions.swift index f15d3be..71a8bd8 100644 --- a/Source/SocketExtensions.swift +++ b/Source/SocketExtensions.swift @@ -36,7 +36,7 @@ extension Array where Element: AnyObject { } extension NSCharacterSet { - class var allowedURLCharacterSet: NSCharacterSet { + static var allowedURLCharacterSet: NSCharacterSet { return NSCharacterSet(charactersInString: "!*'();:@&=+$,/?%#[]\" {}").invertedSet } } diff --git a/Source/SocketIOClient.swift b/Source/SocketIOClient.swift index 0adf61c..7912615 100644 --- a/Source/SocketIOClient.swift +++ b/Source/SocketIOClient.swift @@ -45,9 +45,6 @@ public final class SocketIOClient : NSObject, SocketEngineClient, SocketParsable public var config: SocketIOClientConfiguration public var reconnects = true public var reconnectWait = 10 - public var sid: String? { - return nsp + "#" + (engine?.sid ?? "") - } private let ackQueue = dispatch_queue_create("com.socketio.ackQueue", DISPATCH_QUEUE_SERIAL) private let emitQueue = dispatch_queue_create("com.socketio.emitQueue", DISPATCH_QUEUE_SERIAL) @@ -66,6 +63,10 @@ public final class SocketIOClient : NSObject, SocketEngineClient, SocketParsable var waitingPackets = [SocketPacket]() + public var sid: String? { + return nsp + "#" + (engine?.sid ?? "") + } + /// Type safe way to create a new SocketIOClient. opts can be omitted public init(socketURL: NSURL, config: SocketIOClientConfiguration = []) { self.config = config diff --git a/Source/SocketPacket.swift b/Source/SocketPacket.swift index 6326453..a34691e 100644 --- a/Source/SocketPacket.swift +++ b/Source/SocketPacket.swift @@ -26,6 +26,10 @@ import Foundation struct SocketPacket { + enum PacketType: Int { + case Connect, Disconnect, Event, Ack, Error, BinaryEvent, BinaryAck + } + private let placeholders: Int private static let logType = "SocketPacket" @@ -34,9 +38,8 @@ struct SocketPacket { let id: Int let type: PacketType - enum PacketType: Int { - case Connect, Disconnect, Event, Ack, Error, BinaryEvent, BinaryAck - } + var binary: [NSData] + var data: [AnyObject] var args: [AnyObject] { if type == .Event || type == .BinaryEvent && data.count != 0 { @@ -46,8 +49,6 @@ struct SocketPacket { } } - var binary: [NSData] - var data: [AnyObject] var description: String { return "SocketPacket {type: \(String(type.rawValue)); data: " + "\(String(data)); id: \(id); placeholders: \(placeholders); nsp: \(nsp)}" @@ -110,27 +111,12 @@ struct SocketPacket { private func createPacketString() -> String { let typeString = String(type.rawValue) - let binaryCountString: String - let nspString: String - let idString: String - - if type == .BinaryEvent || type == .BinaryAck { - binaryCountString = typeString + String(binary.count) + "-" - } else { - binaryCountString = typeString - } - - if nsp != "/" { - nspString = binaryCountString + nsp + "," - } else { - nspString = binaryCountString - } - - if id != -1 { - idString = nspString + String(id) - } else { - idString = nspString - } + // Binary count? + let binaryCountString = typeString + (type == .BinaryEvent || type == .BinaryAck ? String(binary.count) + "-" : "") + // Namespace? + let nspString = binaryCountString + (nsp != "/" ? nsp + "," : "") + // Ack number? + let idString = nspString + (id != -1 ? String(id) : "") return completeMessage(idString) }