This commit is contained in:
Erik 2015-03-04 21:50:23 -05:00
parent 1f1ba60574
commit 63aed1ce91
2 changed files with 42 additions and 39 deletions

View File

@ -67,7 +67,7 @@ socket.on("ackEvent") {data, ack in
} }
socket.emitWithAck("ackTest", "test").onAck {data in socket.emitWithAck("ackTest", "test").onAck {data in
println(data) println(data?[0])
} }
ack?("Got your event", "dude") ack?("Got your event", "dude")

View File

@ -49,6 +49,8 @@ private enum PacketType: String {
class SocketEngine: NSObject, SRWebSocketDelegate { class SocketEngine: NSObject, SRWebSocketDelegate {
unowned let client:SocketIOClient unowned let client:SocketIOClient
private let workQueue = NSOperationQueue() private let workQueue = NSOperationQueue()
private let handleQueue = dispatch_queue_create(
"handleQueue".cStringUsingEncoding(NSUTF8StringEncoding), DISPATCH_QUEUE_SERIAL)
private var pingTimer:NSTimer? private var pingTimer:NSTimer?
private var _polling = true private var _polling = true
private var probing = false private var probing = false
@ -134,7 +136,7 @@ class SocketEngine: NSObject, SRWebSocketDelegate {
return (urlPolling, urlWebSocket) return (urlPolling, urlWebSocket)
} }
func doPoll() { private func doPoll() {
if self.urlPolling == nil || self.websocket || self.wait { if self.urlPolling == nil || self.websocket || self.wait {
return return
} }
@ -221,7 +223,7 @@ class SocketEngine: NSObject, SRWebSocketDelegate {
self?.ws = SRWebSocket(URL: self?.ws = SRWebSocket(URL:
NSURL(string: urlWebSocket + "&sid=\(self!.sid)")!) NSURL(string: urlWebSocket + "&sid=\(self!.sid)")!)
self?.ws?.delegate = self self?.ws?.delegate = self
// self?.ws?.open() self?.ws?.open()
} else { } else {
NSLog("Error handshaking") NSLog("Error handshaking")
return return
@ -304,10 +306,10 @@ class SocketEngine: NSObject, SRWebSocketDelegate {
private func parseEngineMessage(message:AnyObject?) { private func parseEngineMessage(message:AnyObject?) {
// println(message) // println(message)
dispatch_async(self.handleQueue) {[weak self] in
if let data = message as? NSData { if let data = message as? NSData {
// Strip off message type // Strip off message type
self.client.parseSocketMessage(data.subdataWithRange(NSMakeRange(1, data.length - 1))) self?.client.parseSocketMessage(data.subdataWithRange(NSMakeRange(1, data.length - 1)))
return return
} }
@ -316,7 +318,7 @@ class SocketEngine: NSObject, SRWebSocketDelegate {
// We should upgrade // We should upgrade
if strMessage == "3probe" { if strMessage == "3probe" {
self.upgradeTransport() self?.upgradeTransport()
return return
} }
@ -331,19 +333,20 @@ class SocketEngine: NSObject, SRWebSocketDelegate {
if let data = NSData(base64EncodedString: messageString, if let data = NSData(base64EncodedString: messageString,
options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters) { options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters) {
self.client.parseSocketMessage(data) self?.client.parseSocketMessage(data)
} }
return return
} }
println("Got something idk what to do with") // println("Got something idk what to do with")
println(messageString) // println(messageString)
} }
// Remove message type // Remove message type
messageString.removeAtIndex(messageString.startIndex) messageString.removeAtIndex(messageString.startIndex)
self.client.parseSocketMessage(messageString) self?.client.parseSocketMessage(messageString)
}
} }
func probeWebSocket() { func probeWebSocket() {