diff --git a/Socket.IO-Client-Swift.podspec b/Socket.IO-Client-Swift.podspec index dc14c44..bd642aa 100644 --- a/Socket.IO-Client-Swift.podspec +++ b/Socket.IO-Client-Swift.podspec @@ -5,7 +5,7 @@ Pod::Spec.new do |s| s.description = <<-DESC Socket.IO-client for iOS and OS X. Supports ws/wss/polling connections and binary. - For socket.io 1.0+ and Swift 1.2. + For socket.io 1.0+ and Swift. DESC s.homepage = "https://github.com/socketio/socket.io-client-swift" s.license = { :type => 'MIT' } diff --git a/Socket.IO-Client-Swift.xcodeproj/project.pbxproj b/Socket.IO-Client-Swift.xcodeproj/project.pbxproj index 4675dee..6053b25 100644 --- a/Socket.IO-Client-Swift.xcodeproj/project.pbxproj +++ b/Socket.IO-Client-Swift.xcodeproj/project.pbxproj @@ -8,9 +8,9 @@ /* Begin PBXBuildFile section */ 572EF21F1B51F16C00EEBB58 /* SocketIO-iOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 572EF21E1B51F16C00EEBB58 /* SocketIO-iOS.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 572EF2251B51F16C00EEBB58 /* SocketIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 572EF2191B51F16C00EEBB58 /* SocketIO.framework */; }; + 572EF2251B51F16C00EEBB58 /* SocketIOClientSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 572EF2191B51F16C00EEBB58 /* SocketIOClientSwift.framework */; }; 572EF23D1B51F18A00EEBB58 /* SocketIO-Mac.h in Headers */ = {isa = PBXBuildFile; fileRef = 572EF23C1B51F18A00EEBB58 /* SocketIO-Mac.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 572EF2431B51F18A00EEBB58 /* SocketIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 572EF2381B51F18A00EEBB58 /* SocketIO.framework */; }; + 572EF2431B51F18A00EEBB58 /* SocketIOClientSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 572EF2381B51F18A00EEBB58 /* SocketIOClientSwift.framework */; }; 57634A111BD9B46A00E19CD7 /* SocketIO-iOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 572EF21E1B51F16C00EEBB58 /* SocketIO-iOS.h */; settings = {ATTRIBUTES = (Public, ); }; }; 57634A231BD9B46D00E19CD7 /* SocketSideEffectTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7472C65E1BCAC46E003CA70D /* SocketSideEffectTest.swift */; }; 57634A2A1BD9B46D00E19CD7 /* SocketEngineTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 741F39ED1BD025D80026C9CC /* SocketEngineTest.swift */; }; @@ -153,12 +153,12 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 572EF2191B51F16C00EEBB58 /* SocketIO.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SocketIO.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 572EF2191B51F16C00EEBB58 /* SocketIOClientSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SocketIOClientSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 572EF21D1B51F16C00EEBB58 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 572EF21E1B51F16C00EEBB58 /* SocketIO-iOS.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SocketIO-iOS.h"; sourceTree = ""; }; 572EF2241B51F16C00EEBB58 /* SocketIO-iOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "SocketIO-iOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 572EF22A1B51F16C00EEBB58 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 572EF2381B51F18A00EEBB58 /* SocketIO.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SocketIO.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 572EF2381B51F18A00EEBB58 /* SocketIOClientSwift.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SocketIOClientSwift.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 572EF23B1B51F18A00EEBB58 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 572EF23C1B51F18A00EEBB58 /* SocketIO-Mac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SocketIO-Mac.h"; sourceTree = ""; }; 572EF2421B51F18A00EEBB58 /* SocketIO-MacTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "SocketIO-MacTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -205,7 +205,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 572EF2251B51F16C00EEBB58 /* SocketIO.framework in Frameworks */, + 572EF2251B51F16C00EEBB58 /* SocketIOClientSwift.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -220,7 +220,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 572EF2431B51F18A00EEBB58 /* SocketIO.framework in Frameworks */, + 572EF2431B51F18A00EEBB58 /* SocketIOClientSwift.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -257,9 +257,9 @@ 572EF21A1B51F16C00EEBB58 /* Products */ = { isa = PBXGroup; children = ( - 572EF2191B51F16C00EEBB58 /* SocketIO.framework */, + 572EF2191B51F16C00EEBB58 /* SocketIOClientSwift.framework */, 572EF2241B51F16C00EEBB58 /* SocketIO-iOSTests.xctest */, - 572EF2381B51F18A00EEBB58 /* SocketIO.framework */, + 572EF2381B51F18A00EEBB58 /* SocketIOClientSwift.framework */, 572EF2421B51F18A00EEBB58 /* SocketIO-MacTests.xctest */, 57634A161BD9B46A00E19CD7 /* SocketIO.framework */, 57634A3B1BD9B46D00E19CD7 /* SocketIO-tvOSTests.xctest */, @@ -411,7 +411,7 @@ ); name = "SocketIO-iOS"; productName = "SocketIO-iOS"; - productReference = 572EF2191B51F16C00EEBB58 /* SocketIO.framework */; + productReference = 572EF2191B51F16C00EEBB58 /* SocketIOClientSwift.framework */; productType = "com.apple.product-type.framework"; }; 572EF2231B51F16C00EEBB58 /* SocketIO-iOSTests */ = { @@ -447,7 +447,7 @@ ); name = "SocketIO-Mac"; productName = "SocketIO-Mac"; - productReference = 572EF2381B51F18A00EEBB58 /* SocketIO.framework */; + productReference = 572EF2381B51F18A00EEBB58 /* SocketIOClientSwift.framework */; productType = "com.apple.product-type.framework"; }; 572EF2411B51F18A00EEBB58 /* SocketIO-MacTests */ = { @@ -782,7 +782,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.0; MACOSX_DEPLOYMENT_TARGET = 10.10; ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = SocketIO; + PRODUCT_NAME = SocketIOClientSwift; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; @@ -797,7 +797,7 @@ ENABLE_BITCODE = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.0; MACOSX_DEPLOYMENT_TARGET = 10.10; - PRODUCT_NAME = SocketIO; + PRODUCT_NAME = SocketIOClientSwift; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; TVOS_DEPLOYMENT_TARGET = 9.0; WATCHOS_DEPLOYMENT_TARGET = 2.0; @@ -850,7 +850,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = "io.socket.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_BUNDLE_IDENTIFIER = io.socket.SocketIOClientSwift; SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -900,7 +900,7 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "io.socket.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_BUNDLE_IDENTIFIER = io.socket.SocketIOClientSwift; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/SocketIO-MacTests/SocketAckManagerTest.swift b/SocketIO-MacTests/SocketAckManagerTest.swift index 768bb9a..67315ac 100644 --- a/SocketIO-MacTests/SocketAckManagerTest.swift +++ b/SocketIO-MacTests/SocketAckManagerTest.swift @@ -7,7 +7,7 @@ // import XCTest -@testable import SocketIO +@testable import SocketIOClientSwift class SocketAckManagerTest: XCTestCase { var ackManager = SocketAckManager() diff --git a/SocketIO-MacTests/SocketBasicPacketTest.swift b/SocketIO-MacTests/SocketBasicPacketTest.swift index 7257075..23d88df 100644 --- a/SocketIO-MacTests/SocketBasicPacketTest.swift +++ b/SocketIO-MacTests/SocketBasicPacketTest.swift @@ -7,7 +7,7 @@ // import XCTest -@testable import SocketIO +@testable import SocketIOClientSwift class SocketBasicPacketTest: XCTestCase { let data = "test".dataUsingEncoding(NSUTF8StringEncoding)! diff --git a/SocketIO-MacTests/SocketEngineTest.swift b/SocketIO-MacTests/SocketEngineTest.swift index 636b562..53c7ec6 100644 --- a/SocketIO-MacTests/SocketEngineTest.swift +++ b/SocketIO-MacTests/SocketEngineTest.swift @@ -7,7 +7,7 @@ // import XCTest -@testable import SocketIO +@testable import SocketIOClientSwift class SocketEngineTest: XCTestCase { var client: SocketIOClient! diff --git a/SocketIO-MacTests/SocketNamespacePacketTest.swift b/SocketIO-MacTests/SocketNamespacePacketTest.swift index 431a62b..4a235ba 100644 --- a/SocketIO-MacTests/SocketNamespacePacketTest.swift +++ b/SocketIO-MacTests/SocketNamespacePacketTest.swift @@ -7,7 +7,7 @@ // import XCTest -@testable import SocketIO +@testable import SocketIOClientSwift class SocketNamespacePacketTest: XCTestCase { let data = "test".dataUsingEncoding(NSUTF8StringEncoding)! diff --git a/SocketIO-MacTests/SocketParserTest.swift b/SocketIO-MacTests/SocketParserTest.swift index 2428dd4..9c24913 100644 --- a/SocketIO-MacTests/SocketParserTest.swift +++ b/SocketIO-MacTests/SocketParserTest.swift @@ -7,7 +7,7 @@ // import XCTest -@testable import SocketIO +@testable import SocketIOClientSwift class SocketParserTest: XCTestCase { let testSocket = SocketIOClient(socketURL: "") diff --git a/SocketIO-MacTests/SocketSideEffectTest.swift b/SocketIO-MacTests/SocketSideEffectTest.swift index 6bae725..9ffd043 100644 --- a/SocketIO-MacTests/SocketSideEffectTest.swift +++ b/SocketIO-MacTests/SocketSideEffectTest.swift @@ -7,7 +7,7 @@ // import XCTest -@testable import SocketIO +@testable import SocketIOClientSwift class SocketSideEffectTest: XCTestCase { let data = "test".dataUsingEncoding(NSUTF8StringEncoding)! diff --git a/Source/SocketIOClient.swift b/Source/SocketIOClient.swift index 16ab0a4..0db5c3c 100644 --- a/Source/SocketIOClient.swift +++ b/Source/SocketIOClient.swift @@ -147,36 +147,35 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketParsable /** Connect to the server. If we aren't connected after timeoutAfter, call handler */ - public func connect(timeoutAfter timeoutAfter: Int, - withTimeoutHandler handler: (() -> Void)?) { - assert(timeoutAfter >= 0, "Invalid timeout: \(timeoutAfter)") - - guard status != .Connected else { - DefaultSocketLogger.Logger.log("Tried connecting on an already connected socket", - type: logType) - return - } - - status = .Connecting - - if engine == nil || forceNew { - addEngine().open(connectParams) - } else { - engine?.open(connectParams) - } - - guard timeoutAfter != 0 else { return } - - let time = dispatch_time(DISPATCH_TIME_NOW, Int64(timeoutAfter) * Int64(NSEC_PER_SEC)) - - dispatch_after(time, handleQueue) {[weak self] in - if let this = self where this.status != .Connected { - this.status = .Closed - this.engine?.close() - - handler?() - } + public func connect(timeoutAfter timeoutAfter: Int, withTimeoutHandler handler: (() -> Void)?) { + assert(timeoutAfter >= 0, "Invalid timeout: \(timeoutAfter)") + + guard status != .Connected else { + DefaultSocketLogger.Logger.log("Tried connecting on an already connected socket", + type: logType) + return + } + + status = .Connecting + + if engine == nil || forceNew { + addEngine().open(connectParams) + } else { + engine?.open(connectParams) + } + + guard timeoutAfter != 0 else { return } + + let time = dispatch_time(DISPATCH_TIME_NOW, Int64(timeoutAfter) * Int64(NSEC_PER_SEC)) + + dispatch_after(time, handleQueue) {[weak self] in + if let this = self where this.status != .Connected { + this.status = .Closed + this.engine?.close() + + handler?() } + } } private func createOnAck(items: [AnyObject]) -> OnAckCallback { @@ -330,22 +329,20 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketParsable /** Causes an event to be handled. Only use if you know what you're doing. */ - public func handleEvent(event: String, data: [AnyObject], isInternalMessage: Bool, - withAck ack: Int = -1) { - guard status == .Connected || isInternalMessage else { - return + public func handleEvent(event: String, data: [AnyObject], isInternalMessage: Bool, withAck ack: Int = -1) { + guard status == .Connected || isInternalMessage else { + return + } + + DefaultSocketLogger.Logger.log("Handling event: %@ with data: %@", type: logType, args: event, data ?? "") + + dispatch_async(handleQueue) { + self.anyHandler?(SocketAnyEvent(event: event, items: data)) + + for handler in self.handlers where handler.event == event { + handler.executeCallback(data, withAck: ack, withSocket: self) } - - DefaultSocketLogger.Logger.log("Handling event: %@ with data: %@", type: logType, args: event, data ?? "") - - dispatch_async(handleQueue) { - self.anyHandler?(SocketAnyEvent(event: event, items: data)) - - for handler in self.handlers where handler.event == event { - handler.executeCallback(data, withAck: ack, withSocket: self) - } - } - + } } /** @@ -436,7 +433,8 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketParsable } public func parseEngineMessage(msg: String) { - DefaultSocketLogger.Logger.log("Should parse message", type: "SocketIOClient") + DefaultSocketLogger.Logger.log("Should parse message: %@", type: "SocketIOClient", args: msg) + dispatch_async(parseQueue) { self.parseSocketMessage(msg) }