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
println(data)
println(data?[0])
}
ack?("Got your event", "dude")

View File

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