leave it up to the engineclient how to handle messages

This commit is contained in:
Erik 2015-08-18 10:05:51 -04:00
parent 4c9d6ef3de
commit 58097fa39e
3 changed files with 15 additions and 16 deletions

View File

@ -373,19 +373,15 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
end: advance(message.startIndex, 2))) end: advance(message.startIndex, 2)))
if let data = NSData(base64EncodedString: message, if let data = NSData(base64EncodedString: message,
options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters), client = client { options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters) {
dispatch_async(client.handleQueue) {[weak self] in client?.parseBinaryData(data)
self?.client?.parseBinaryData(data)
}
} }
} }
} }
private func handleMessage(message: String) { private func handleMessage(message: String) {
if let client = client { if let client = client {
dispatch_async(client.handleQueue) {[weak client] in client.parseSocketMessage(message)
client?.parseSocketMessage(message)
}
} }
} }
@ -543,11 +539,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
} }
private func parseEngineData(data: NSData) { private func parseEngineData(data: NSData) {
if let client = client { client?.parseBinaryData(data.subdataWithRange(NSMakeRange(1, data.length - 1)))
dispatch_async(client.handleQueue) {[weak self] in
self?.client?.parseBinaryData(data.subdataWithRange(NSMakeRange(1, data.length - 1)))
}
}
} }
private func parseEngineMessage(var message: String, fromPolling: Bool) { private func parseEngineMessage(var message: String, fromPolling: Bool) {

View File

@ -26,7 +26,6 @@
import Foundation import Foundation
@objc public protocol SocketEngineClient { @objc public protocol SocketEngineClient {
var handleQueue: dispatch_queue_t! {get}
var socketURL: String {get} var socketURL: String {get}
var secure: Bool {get} var secure: Bool {get}

View File

@ -45,7 +45,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
public private(set) var engine: SocketEngine? public private(set) var engine: SocketEngine?
public private(set) var secure = false public private(set) var secure = false
public private(set) var status = SocketIOClientStatus.NotConnected public private(set) var status = SocketIOClientStatus.NotConnected
public var nsp = "/" public var nsp = "/"
public var opts: [String: AnyObject]? public var opts: [String: AnyObject]?
public var reconnects = true public var reconnects = true
@ -438,11 +438,19 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
} }
public func parseSocketMessage(msg: String) { public func parseSocketMessage(msg: String) {
SocketParser.parseSocketMessage(msg, socket: self) dispatch_async(handleQueue) {[weak self] in
if let this = self {
SocketParser.parseSocketMessage(msg, socket: this)
}
}
} }
public func parseBinaryData(data: NSData) { public func parseBinaryData(data: NSData) {
SocketParser.parseBinaryData(data, socket: self) dispatch_async(handleQueue) {[weak self] in
if let this = self {
SocketParser.parseBinaryData(data, socket: this)
}
}
} }
/** /**