refactor out checking for base64

This commit is contained in:
Erik 2016-08-02 20:14:04 -04:00
parent fcfb409282
commit ee63c4e386
No known key found for this signature in database
GPG Key ID: 4930B7C5FBC1A69D

View File

@ -153,19 +153,13 @@ public final class SocketEngine : NSObject, NSURLSessionDelegate, SocketEnginePo
}
}
private func checkIfMessageIsBase64Binary(message: String) -> Bool {
if message.hasPrefix("b4") {
private func handleBase64(message: String) {
// binary in base64 string
let noPrefix = message[message.startIndex.advancedBy(2)..<message.endIndex]
if let data = NSData(base64EncodedString: noPrefix, options: .IgnoreUnknownCharacters) {
client?.parseEngineBinaryData(data)
}
return true
} else {
return false
}
}
private func closeOutEngine(reason: String) {
@ -420,11 +414,13 @@ public final class SocketEngine : NSObject, NSURLSessionDelegate, SocketEnginePo
let reader = SocketStringReader(message: message)
let fixedString: String
guard let type = SocketEnginePacketType(rawValue: Int(reader.currentCharacter) ?? -1) else {
if !checkIfMessageIsBase64Binary(message) {
checkAndHandleEngineError(message)
if message.hasPrefix("b4") {
return handleBase64(message)
}
guard let type = SocketEnginePacketType(rawValue: Int(reader.currentCharacter) ?? -1) else {
checkAndHandleEngineError(message)
return
}