From d3500d38ba8bdd61abefb3a3db924c6c373f2759 Mon Sep 17 00:00:00 2001 From: Kobe Date: Fri, 2 Sep 2016 10:46:39 +0800 Subject: [PATCH 1/4] Modify mac version base mac os 10.9 --- Socket.IO-Client-Swift.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Socket.IO-Client-Swift.podspec b/Socket.IO-Client-Swift.podspec index 47c0b88..b7e4897 100644 --- a/Socket.IO-Client-Swift.podspec +++ b/Socket.IO-Client-Swift.podspec @@ -12,7 +12,7 @@ Pod::Spec.new do |s| s.license = { :type => 'MIT' } s.author = { "Erik" => "nuclear.ace@gmail.com" } s.ios.deployment_target = '8.0' - s.osx.deployment_target = '10.10' + s.osx.deployment_target = '10.9' s.tvos.deployment_target = '9.0' s.source = { :git => "https://github.com/socketio/socket.io-client-swift.git", :tag => 'v7.0.3' } s.source_files = "Source/**/*.swift" From 923103dec8be5bb00895c27404f3ac90ef9aeaa3 Mon Sep 17 00:00:00 2001 From: Erik Date: Fri, 2 Sep 2016 17:33:12 -0400 Subject: [PATCH 2/4] change spm name --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index f7d8304..04e8fbb 100644 --- a/Package.swift +++ b/Package.swift @@ -1,5 +1,5 @@ import PackageDescription let package = Package( - name: "SocketIOClientSwift" + name: "SocketIO" ) From 49dfd7432cc8c104d37a6c350c4642e878ec6626 Mon Sep 17 00:00:00 2001 From: Erik Date: Fri, 2 Sep 2016 17:57:26 -0400 Subject: [PATCH 3/4] use guarded try --- Source/SocketEngine.swift | 72 +++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/Source/SocketEngine.swift b/Source/SocketEngine.swift index 753f750..6c3910e 100644 --- a/Source/SocketEngine.swift +++ b/Source/SocketEngine.swift @@ -355,45 +355,45 @@ public final class SocketEngine : NSObject, NSURLSessionDelegate, SocketEnginePo private func handleNOOP() { doPoll() } - + private func handleOpen(openData: String) { - do { - let json = try openData.toNSDictionary() - guard let sid = json["sid"] as? String else { - client?.engineDidError("Open packet contained no sid") - return - } - - let upgradeWs: Bool - - self.sid = sid - connected = true - - if let upgrades = json["upgrades"] as? [String] { - upgradeWs = upgrades.contains("websocket") - } else { - upgradeWs = false - } - - if let pingInterval = json["pingInterval"] as? Double, pingTimeout = json["pingTimeout"] as? Double { - self.pingInterval = pingInterval / 1000.0 - self.pingTimeout = pingTimeout / 1000.0 - } - - if !forcePolling && !forceWebsockets && upgradeWs { - createWebsocketAndConnect() - } - - sendPing() - - if !forceWebsockets { - doPoll() - } - - client?.engineDidOpen("Connect") - } catch { + guard let json = try? openData.toNSDictionary() else { didError("Error parsing open packet") + return } + + guard let sid = json["sid"] as? String else { + didError("Open packet contained no sid") + return + } + + let upgradeWs: Bool + + self.sid = sid + connected = true + + if let upgrades = json["upgrades"] as? [String] { + upgradeWs = upgrades.contains("websocket") + } else { + upgradeWs = false + } + + if let pingInterval = json["pingInterval"] as? Double, pingTimeout = json["pingTimeout"] as? Double { + self.pingInterval = pingInterval / 1000.0 + self.pingTimeout = pingTimeout / 1000.0 + } + + if !forcePolling && !forceWebsockets && upgradeWs { + createWebsocketAndConnect() + } + + sendPing() + + if !forceWebsockets { + doPoll() + } + + client?.engineDidOpen("Connect") } private func handlePong(pongMessage: String) { From 16eefa4abfa0bdc097ca3a649f3c208ab3ab7d21 Mon Sep 17 00:00:00 2001 From: Erik Date: Fri, 2 Sep 2016 18:03:15 -0400 Subject: [PATCH 4/4] Don't parse twice for errors --- SocketIO-MacTests/SocketParserTest.swift | 10 ++++++++-- Source/SocketParsable.swift | 16 +++++++--------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/SocketIO-MacTests/SocketParserTest.swift b/SocketIO-MacTests/SocketParserTest.swift index a43fdaf..319c931 100644 --- a/SocketIO-MacTests/SocketParserTest.swift +++ b/SocketIO-MacTests/SocketParserTest.swift @@ -27,7 +27,8 @@ class SocketParserTest: XCTestCase { "1/swift": ("/swift", [], [], -1), "4\"ERROR\"": ("/", ["ERROR"], [], -1), "4{\"test\":2}": ("/", [["test": 2]], [], -1), - "41": ("/", [1], [], -1)] + "41": ("/", [1], [], -1), + "4[1, \"hello\"]": ("/", [1, "hello"], [], -1)] func testDisconnect() { let message = "1" @@ -99,6 +100,11 @@ class SocketParserTest: XCTestCase { validateParseResult(message) } + func testErrorTypeArray() { + let message = "4[1, \"hello\"]" + validateParseResult(message) + } + func testInvalidInput() { let message = "8" switch testSocket.parseString(message) { @@ -120,7 +126,7 @@ class SocketParserTest: XCTestCase { func validateParseResult(message: String) { let validValues = SocketParserTest.packetTypes[message]! let packet = testSocket.parseString(message) - let type = message.substringWithRange(Range(message.startIndex..