From 4de422e7f14eea64213d4e1af9ac632e70e91270 Mon Sep 17 00:00:00 2001 From: Erik Date: Sun, 22 Mar 2015 09:53:25 -0400 Subject: [PATCH] tweaks --- SwiftIO/SocketEngine.swift | 30 +++++++++++++++--------------- SwiftIO/SocketPacket.swift | 2 +- SwiftIO/SocketParser.swift | 8 +++----- 3 files changed, 19 insertions(+), 21 deletions(-) diff --git a/SwiftIO/SocketEngine.swift b/SwiftIO/SocketEngine.swift index 5621321..c8be3ab 100644 --- a/SwiftIO/SocketEngine.swift +++ b/SwiftIO/SocketEngine.swift @@ -30,7 +30,7 @@ extension String { } } -private typealias Probe = (msg:String, type:PacketType, data:[NSData]?) +private typealias Probe = (msg:String, type:PacketType, data:ContiguousArray?) private typealias ProbeWaitQueue = [Probe] public enum PacketType: String { @@ -477,7 +477,7 @@ public class SocketEngine: NSObject, WebSocketDelegate { } /// Send an engine message (4) - public func send(msg:String, withData datas:[NSData]?) { + public func send(msg:String, withData datas:ContiguousArray?) { if self.probing { self.probeWait.append((msg, PacketType.MESSAGE, datas)) } else { @@ -494,9 +494,8 @@ public class SocketEngine: NSObject, WebSocketDelegate { } private func sendPollMessage(var msg:String, withType type:PacketType, - datas:[NSData]? = nil) { + datas:ContiguousArray? = nil) { // println("Sending poll: \(msg) as type: \(type.rawValue)") - doubleEncodeUTF8(&msg) let strMsg = "\(type.rawValue)\(msg)" @@ -515,18 +514,19 @@ public class SocketEngine: NSObject, WebSocketDelegate { } } - private func sendWebSocketMessage(str:String, withType type:PacketType, datas:[NSData]? = nil) { - // println("Sending ws: \(str) as type: \(type.rawValue)") - self.ws?.writeString("\(type.rawValue)\(str)") - - if datas != nil { - for data in datas! { - let (data, nilString) = self.createBinaryDataForSend(data) - if data != nil { - self.ws?.writeData(data!) + private func sendWebSocketMessage(str:String, withType type:PacketType, + datas:ContiguousArray? = nil) { + // println("Sending ws: \(str) as type: \(type.rawValue)") + self.ws?.writeString("\(type.rawValue)\(str)") + + if datas != nil { + for data in datas! { + let (data, nilString) = self.createBinaryDataForSend(data) + if data != nil { + self.ws?.writeData(data!) + } } } - } } // Starts the ping timer @@ -552,7 +552,7 @@ public class SocketEngine: NSObject, WebSocketDelegate { } } - public func write(msg:String, withType type:PacketType, withData data:[NSData]?) { + public func write(msg:String, withType type:PacketType, withData data:ContiguousArray?) { dispatch_async(self.emitQueue) {[weak self] in if self == nil { return diff --git a/SwiftIO/SocketPacket.swift b/SwiftIO/SocketPacket.swift index f521baa..7c221cf 100644 --- a/SwiftIO/SocketPacket.swift +++ b/SwiftIO/SocketPacket.swift @@ -43,7 +43,7 @@ enum SocketPacketType: Int { } class SocketPacket { - var binary = [NSData]() + var binary = ContiguousArray() var currentPlace = 0 var data:[AnyObject]? var id:Int? diff --git a/SwiftIO/SocketParser.swift b/SwiftIO/SocketParser.swift index d77fab5..45e96a9 100644 --- a/SwiftIO/SocketParser.swift +++ b/SwiftIO/SocketParser.swift @@ -27,8 +27,8 @@ private let shredder = SocketParser.Deconstructor() class SocketParser { // Translation of socket.io-parser#deconstructPacket private class Deconstructor { - var buf = [NSData]() - + var buf = ContiguousArray() + func ripAndTear(data:AnyObject) -> AnyObject { if let bin = data as? NSData { let placeholder = ["_placeholder" :true, "num": buf.count] @@ -36,9 +36,7 @@ class SocketParser { buf.append(bin) return placeholder - } - - if var arr = data as? [AnyObject] { + } else if var arr = data as? [AnyObject] { for i in 0..