From 1f1ba605743a93f4e7d9c85cf1c39c4a07cd7c89 Mon Sep 17 00:00:00 2001 From: Erik Date: Wed, 4 Mar 2015 21:20:52 -0500 Subject: [PATCH] fix namespaces --- SwiftIO/SocketAckHandler.swift | 2 +- SwiftIO/SocketEngine.swift | 8 ++++---- SwiftIO/SocketIOClient.swift | 35 ++++++++++++++++++++++------------ 3 files changed, 28 insertions(+), 17 deletions(-) diff --git a/SwiftIO/SocketAckHandler.swift b/SwiftIO/SocketAckHandler.swift index 5a9d909..17a4236 100644 --- a/SwiftIO/SocketAckHandler.swift +++ b/SwiftIO/SocketAckHandler.swift @@ -24,7 +24,7 @@ import Foundation -typealias AckCallback = (AnyObject?) -> Void +typealias AckCallback = (NSArray?) -> Void class SocketAckHandler { let ackNum:Int! diff --git a/SwiftIO/SocketEngine.swift b/SwiftIO/SocketEngine.swift index 0428de4..27fe4d4 100644 --- a/SwiftIO/SocketEngine.swift +++ b/SwiftIO/SocketEngine.swift @@ -221,7 +221,7 @@ class SocketEngine: NSObject, SRWebSocketDelegate { self?.ws = SRWebSocket(URL: NSURL(string: urlWebSocket + "&sid=\(self!.sid)")!) self?.ws?.delegate = self - self?.ws?.open() + // self?.ws?.open() } else { NSLog("Error handshaking") return @@ -278,8 +278,8 @@ class SocketEngine: NSObject, SRWebSocketDelegate { length += chr } else { if testLength(length, &n) || length == "" { - println("parsing error at testlength") - exit(1) + self.handlePollingFailed() + return } msg = String(strArray[i+1...i+n]) @@ -287,7 +287,7 @@ class SocketEngine: NSObject, SRWebSocketDelegate { if let lengthInt = length.toInt() { if lengthInt != msg.length { println("parsing error") - exit(1) + return } } diff --git a/SwiftIO/SocketIOClient.swift b/SwiftIO/SocketIOClient.swift index a1e43db..6b65e41 100644 --- a/SwiftIO/SocketIOClient.swift +++ b/SwiftIO/SocketIOClient.swift @@ -225,7 +225,14 @@ class SocketIOClient { if handler.ackNum != ack { return true } else { - handler.callback?(data) + if data is NSArray { + handler.callback?(data as? NSArray) + } else if data != nil { + handler.callback?([data!]) + } else { + handler.callback?(nil) + } + return false } } @@ -465,23 +472,23 @@ class SocketIOClient { if let stringMessage = message as? String { // Check for successful namepsace connect + if self.nsp != nil { + if stringMessage == "0/\(self.nsp!)" { + self.didConnect() + self.handleEvent("connect", data: nil) + return + } + } if stringMessage == "0" { - // connected - self.didConnect() - if self.nsp != nil { // Join namespace self.joinNamespace() return - } - - // Don't handle as internal because something crazy could happen where - // we disconnect before it's handled - self.handleEvent("connect", data: nil) - } - if self.nsp != nil { - if stringMessage == "0/\(self.nsp!)" { + } else { + // Don't handle as internal because something crazy could happen where + // we disconnect before it's handled + self.didConnect() self.handleEvent("connect", data: nil) return } @@ -705,10 +712,12 @@ class SocketIOClient { let filledInArgs:AnyObject = self.lastSocketMessage!.fillInPlaceholders(args) if self.lastSocketMessage!.justAck! { + // Should handle ack self.handleAck(self.lastSocketMessage!.ack!, data: filledInArgs) return } + // Should do event if self.lastSocketMessage!.ack != nil { self.handleEvent(event, data: filledInArgs, isInternalMessage: false, wantsAck: self.lastSocketMessage!.ack!, withAckType: 6) @@ -718,11 +727,13 @@ class SocketIOClient { } else { let filledInArgs:AnyObject = self.lastSocketMessage!.fillInPlaceholders() + // Should handle ack if self.lastSocketMessage!.justAck! { self.handleAck(self.lastSocketMessage!.ack!, data: filledInArgs) return } + // Should handle ack if self.lastSocketMessage!.ack != nil { self.handleEvent(event, data: filledInArgs, isInternalMessage: false, wantsAck: self.lastSocketMessage!.ack!, withAckType: 6)