From f818d64405fbb2c423b30b5756302c449bf6ef46 Mon Sep 17 00:00:00 2001 From: Erik Date: Mon, 14 Sep 2015 15:40:13 -0400 Subject: [PATCH] fix socketio/socket.io-client-swift#177 --- SocketIOClientSwift/SocketEngine.swift | 1 + SocketIOClientSwift/SocketIOClient.swift | 2 +- SocketIOClientSwift/SocketParser.swift | 9 ++++++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/SocketIOClientSwift/SocketEngine.swift b/SocketIOClientSwift/SocketEngine.swift index 3ac4341..ba3d214 100644 --- a/SocketIOClientSwift/SocketEngine.swift +++ b/SocketIOClientSwift/SocketEngine.swift @@ -502,6 +502,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate { } private func parseEngineData(data: NSData) { + Logger.log("Got binary data: %@", type: "SocketEngine", args: data) client?.parseBinaryData(data.subdataWithRange(NSMakeRange(1, data.length - 1))) } diff --git a/SocketIOClientSwift/SocketIOClient.swift b/SocketIOClientSwift/SocketIOClient.swift index 3b3fbf3..cd52b69 100644 --- a/SocketIOClientSwift/SocketIOClient.swift +++ b/SocketIOClientSwift/SocketIOClient.swift @@ -54,7 +54,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient { private var ackHandlers = SocketAckManager() private var currentAck = -1 - internal var waitingData = [SocketPacket]() + var waitingData = [SocketPacket]() /** Create a new SocketIOClient. opts can be omitted diff --git a/SocketIOClientSwift/SocketParser.swift b/SocketIOClientSwift/SocketParser.swift index 896bd5b..ed4fd49 100644 --- a/SocketIOClientSwift/SocketParser.swift +++ b/SocketIOClientSwift/SocketParser.swift @@ -156,10 +156,13 @@ class SocketParser { return } - let shouldExecute = socket.waitingData[0].addData(data) - guard shouldExecute else { return } + let shouldExecute = socket.waitingData[socket.waitingData.count - 1].addData(data) - var packet = socket.waitingData.removeAtIndex(0) + guard shouldExecute else { + return + } + + var packet = socket.waitingData.removeLast() packet.fillInPlaceholders() if packet.type != .BinaryAck {