work on parser

This commit is contained in:
Erik 2015-03-18 19:21:04 -04:00
parent 66aaa52120
commit d13d185011

View File

@ -185,7 +185,7 @@ class SocketParser {
}
// Parses messages recieved
class func parseSocketMessage(stringMessage:String, socket:SocketIOClient) {
class func parseSocketMessage(var stringMessage:String, socket:SocketIOClient) {
if stringMessage == "" {
return
}
@ -225,23 +225,20 @@ class SocketParser {
**/
var messageGroups:[String]?
let type = stringMessage.removeAtIndex(stringMessage.startIndex)
if type == "2" {
if let groups = stringMessage["(\\d*)\\/?(\\w*)?,?(\\d*)?\\[\"(.*?)\",?(.*?)?\\]$",
NSRegularExpressionOptions.DotMatchesLineSeparators].groups() {
messageGroups = groups
} else if let ackGroup = stringMessage["(\\d*)\\/?(\\w*)?,?(\\d*)?\\[(.*?)?\\]$",
NSRegularExpressionOptions.DotMatchesLineSeparators].groups() {
messageGroups = ackGroup
} else {
NSLog("Error parsing message: %s", stringMessage)
return
}
if messageGroups![1].hasPrefix("2") {
var mesNum = messageGroups![1]
var ackNum:String
var namespace:String?
if messageGroups![3] != "" {
if mesNum == "" {
ackNum = ""
} else if messageGroups![3] != "" {
ackNum = messageGroups![3]
} else {
let range = Range<String.Index>(start: mesNum.startIndex,
@ -270,7 +267,13 @@ class SocketParser {
return
}
} else if messageGroups![1].hasPrefix("3") {
}
} else if type == "3" {
if let ackGroup = stringMessage["(\\d*)\\/?(\\w*)?,?(\\d*)?\\[(.*?)?\\]$",
NSRegularExpressionOptions.DotMatchesLineSeparators].groups() {
messageGroups = ackGroup
let arr = Array(messageGroups![1])
var ackNum:String
let nsp = messageGroups![2]
@ -280,16 +283,17 @@ class SocketParser {
}
if nsp == "" {
ackNum = String(arr[1...arr.count-1])
ackNum = String(arr[0...arr.count-1])
} else {
ackNum = messageGroups![3]
}
let ackData:AnyObject? = self.parseData(messageGroups![4])
let ackData:AnyObject? = self.parseData("[\(messageGroups![4])]")
socket.handleAck(ackNum.toInt()!, data: ackData)
return
}
}
/**
End Check for message
**/