handle binary

This commit is contained in:
Erik 2015-03-04 14:06:20 -05:00
parent 574e9d5f7e
commit 3088bd88e6

View File

@ -130,30 +130,18 @@ class SocketEngine: NSObject, SRWebSocketDelegate {
return
}
// println(data)
if let str = NSString(data: data, encoding: NSUTF8StringEncoding) {
// println(str)
var mut = RegexMutable(str)
let groups = mut["(\\d):(.*)"].groups()
if groups[1] == "" || groups[2] == "" {
return
self?.parsePollingMessage(str)
}
let type = groups[1]
var mutPart = RegexMutable(groups[0])
if type != "2" {
return
}
mutPart["^2:40"] ~= ""
self?.parsePollingMessage(mutPart)
self?.wait = false
self?.doPoll()
}
}
}
func open(opts:[String: AnyObject]? = nil) {
let (urlPolling, urlWebSocket) = self.createURLs(params: opts)
@ -241,10 +229,9 @@ class SocketEngine: NSObject, SRWebSocketDelegate {
func testLength(length:String, inout n:Int) -> Bool {
if let num = length.toInt() {
n = num
if num != n {
} else {
return true
}
}
return false
}
@ -302,7 +289,16 @@ class SocketEngine: NSObject, SRWebSocketDelegate {
if type != PacketType.MESSAGE.rawValue {
// TODO Handle other packets
println(message)
if message.hasPrefix("b4") {
// binary in base64 string
message.removeRange(Range<String.Index>(start: message.startIndex,
end: advance(message.startIndex, 2)))
}
if let data = NSData(base64EncodedString: message,
options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters) {
self.client.parseSocketMessage(data)
}
return
}