This commit is contained in:
Erik 2015-09-17 09:06:09 -04:00
parent d0a57ca353
commit 2f2bd49045

View File

@ -100,6 +100,19 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
Logger.log("Engine is being deinit", type: logType)
}
private func checkIfMessageIsBase64Binary(var message: String) {
if message.hasPrefix("b4") {
// binary in base64 string
message.removeRange(Range<String.Index>(start: message.startIndex,
end: message.startIndex.advancedBy(2)))
if let data = NSData(base64EncodedString: message,
options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters) {
client?.parseBinaryData(data)
}
}
}
public func close(fast fast: Bool) {
Logger.log("Engine is being closed. Fast: %@", type: logType, args: fast)
@ -364,19 +377,6 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
}
}
private func checkIfMessageIsBase64Binary(var message: String) {
if message.hasPrefix("b4") {
// binary in base64 string
message.removeRange(Range<String.Index>(start: message.startIndex,
end: message.startIndex.advancedBy(2)))
if let data = NSData(base64EncodedString: message,
options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters) {
client?.parseBinaryData(data)
}
}
}
private func handleMessage(message: String) {
client?.parseSocketMessage(message)
}
@ -492,11 +492,17 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
var reader = SocketStringReader(message: str)
while reader.hasNext {
let n = reader.readUntilStringOccurence(":")
let str = reader.read(Int(n)!)
if let n = Int(reader.readUntilStringOccurence(":")) {
let str = reader.read(n)
dispatch_async(handleQueue) {
self.parseEngineMessage(str, fromPolling: true)
dispatch_async(handleQueue) {
self.parseEngineMessage(str, fromPolling: true)
}
} else {
dispatch_async(handleQueue) {
self.parseEngineMessage(str, fromPolling: true)
}
break
}
}
}