clean up code
This commit is contained in:
parent
16ed2bd130
commit
13087ff1b7
@ -23,6 +23,7 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class SocketParser {
|
class SocketParser {
|
||||||
|
|
||||||
private static func isCorrectNamespace(nsp: String, _ socket: SocketIOClient) -> Bool {
|
private static func isCorrectNamespace(nsp: String, _ socket: SocketIOClient) -> Bool {
|
||||||
return nsp == socket.nsp
|
return nsp == socket.nsp
|
||||||
}
|
}
|
||||||
@ -72,12 +73,12 @@ class SocketParser {
|
|||||||
|
|
||||||
// Translation of socket.io-client#decodeString
|
// Translation of socket.io-client#decodeString
|
||||||
static func parseString(str: String) -> SocketPacket? {
|
static func parseString(str: String) -> SocketPacket? {
|
||||||
let arr = Array(str.characters)
|
let messageCharacters = Array(str.characters)
|
||||||
guard let type = SocketPacket.PacketType(str: String(arr[0])) else {
|
guard let type = SocketPacket.PacketType(str: String(messageCharacters[0])) else {
|
||||||
NSLog("Error parsing \(str)")
|
NSLog("Error parsing \(str)")
|
||||||
return nil}
|
return nil}
|
||||||
|
|
||||||
if arr.count == 1 {
|
if messageCharacters.count == 1 {
|
||||||
return SocketPacket(type: type, nsp: "/")
|
return SocketPacket(type: type, nsp: "/")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,14 +90,14 @@ class SocketParser {
|
|||||||
if type == .BinaryEvent || type == .BinaryAck {
|
if type == .BinaryEvent || type == .BinaryAck {
|
||||||
var buf = ""
|
var buf = ""
|
||||||
|
|
||||||
while arr[++i] != "-" {
|
while messageCharacters[++i] != "-" {
|
||||||
buf += String(arr[i])
|
buf += String(messageCharacters[i])
|
||||||
if i == arr.count {
|
if i == messageCharacters.count {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if let holders = Int(buf) where arr[i] == "-" {
|
if let holders = Int(buf) where messageCharacters[i] == "-" {
|
||||||
placeholders = holders
|
placeholders = holders
|
||||||
} else {
|
} else {
|
||||||
NSLog("Error parsing \(str)")
|
NSLog("Error parsing \(str)")
|
||||||
@ -104,11 +105,11 @@ class SocketParser {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if arr[i + 1] == "/" {
|
if messageCharacters[i + 1] == "/" {
|
||||||
nsp = ""
|
nsp = ""
|
||||||
|
|
||||||
while ++i < arr.count {
|
while ++i < messageCharacters.count {
|
||||||
let c = arr[i]
|
let c = messageCharacters[i]
|
||||||
|
|
||||||
if c == "," {
|
if c == "," {
|
||||||
break
|
break
|
||||||
@ -118,17 +119,17 @@ class SocketParser {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if i + 1 >= arr.count {
|
if i + 1 >= messageCharacters.count {
|
||||||
return SocketPacket(type: type, id: id ?? -1,
|
return SocketPacket(type: type, id: id ?? -1,
|
||||||
nsp: nsp ?? "/", placeholders: placeholders)
|
nsp: nsp ?? "/", placeholders: placeholders)
|
||||||
}
|
}
|
||||||
|
|
||||||
let next = String(arr[i + 1])
|
let next = String(messageCharacters[i + 1])
|
||||||
|
|
||||||
if Int(next) != nil {
|
if Int(next) != nil {
|
||||||
var c = ""
|
var c = ""
|
||||||
while ++i < arr.count {
|
while ++i < messageCharacters.count {
|
||||||
if let int = Int(String(arr[i])) {
|
if let int = Int(String(messageCharacters[i])) {
|
||||||
c += String(int)
|
c += String(int)
|
||||||
} else {
|
} else {
|
||||||
--i
|
--i
|
||||||
@ -139,7 +140,7 @@ class SocketParser {
|
|||||||
id = Int(c)
|
id = Int(c)
|
||||||
}
|
}
|
||||||
|
|
||||||
if ++i < arr.count {
|
if ++i < messageCharacters.count {
|
||||||
let d = str[str.startIndex.advancedBy(i)...str.startIndex.advancedBy(str.characters.count-1)]
|
let d = str[str.startIndex.advancedBy(i)...str.startIndex.advancedBy(str.characters.count-1)]
|
||||||
let noPlaceholders = d["(\\{\"_placeholder\":true,\"num\":(\\d*)\\})"] ~= "\"~~$2\""
|
let noPlaceholders = d["(\\{\"_placeholder\":true,\"num\":(\\d*)\\})"] ~= "\"~~$2\""
|
||||||
let data = SocketParser.parseData(noPlaceholders) as? [AnyObject] ?? [noPlaceholders]
|
let data = SocketParser.parseData(noPlaceholders) as? [AnyObject] ?? [noPlaceholders]
|
||||||
@ -153,24 +154,14 @@ class SocketParser {
|
|||||||
|
|
||||||
// Parses data for events
|
// Parses data for events
|
||||||
static func parseData(data: String) -> AnyObject? {
|
static func parseData(data: String) -> AnyObject? {
|
||||||
var err: NSError?
|
|
||||||
let stringData = data.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)
|
let stringData = data.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)
|
||||||
let parsed: AnyObject?
|
|
||||||
|
|
||||||
do {
|
do {
|
||||||
parsed = try NSJSONSerialization.JSONObjectWithData(stringData!,
|
return try NSJSONSerialization.JSONObjectWithData(stringData!,
|
||||||
options: NSJSONReadingOptions.MutableContainers)
|
options: NSJSONReadingOptions.MutableContainers)
|
||||||
} catch let error as NSError {
|
} catch let error as NSError {
|
||||||
err = error
|
//TODO Log error
|
||||||
parsed = nil
|
|
||||||
}
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
// println(err)
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return parsed
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parses messages recieved
|
// Parses messages recieved
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user