refactor client dispatch queues
This commit is contained in:
parent
9633bea018
commit
0b6cece96b
@ -41,6 +41,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
|
||||
|
||||
private let emitQueue = dispatch_queue_create("com.socketio.emitQueue", DISPATCH_QUEUE_SERIAL)
|
||||
private let logType = "SocketIOClient"
|
||||
private let parseQueue = dispatch_queue_create("com.socketio.parseQueue", DISPATCH_QUEUE_SERIAL)
|
||||
|
||||
private var anyHandler: ((SocketAnyEvent) -> Void)?
|
||||
private var currentReconnectAttempt = 0
|
||||
@ -52,6 +53,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
|
||||
private(set) var currentAck = -1
|
||||
private(set) var handleQueue = dispatch_get_main_queue()
|
||||
private(set) var reconnectAttempts = -1
|
||||
|
||||
var waitingData = [SocketPacket]()
|
||||
|
||||
/**
|
||||
@ -344,23 +346,20 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
|
||||
|
||||
Logger.log("Handling event: %@ with data: %@", type: logType, args: event, data ?? "")
|
||||
|
||||
if anyHandler != nil {
|
||||
dispatch_async(handleQueue) {
|
||||
if self.anyHandler != nil {
|
||||
self.anyHandler?(SocketAnyEvent(event: event, items: data))
|
||||
}
|
||||
|
||||
for handler in self.handlers where handler.event == event {
|
||||
if let ack = ack {
|
||||
handler.executeCallback(data, withAck: ack, withSocket: self)
|
||||
} else {
|
||||
handler.executeCallback(data, withAck: ack, withSocket: self)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for handler in handlers where handler.event == event {
|
||||
if let ack = ack {
|
||||
dispatch_async(handleQueue) {
|
||||
handler.executeCallback(data, withAck: ack, withSocket: self)
|
||||
}
|
||||
} else {
|
||||
dispatch_async(handleQueue) {
|
||||
handler.executeCallback(data, withAck: ack, withSocket: self)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -451,13 +450,13 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
|
||||
}
|
||||
|
||||
public func parseSocketMessage(msg: String) {
|
||||
dispatch_async(handleQueue) {
|
||||
dispatch_async(parseQueue) {
|
||||
SocketParser.parseSocketMessage(msg, socket: self)
|
||||
}
|
||||
}
|
||||
|
||||
public func parseBinaryData(data: NSData) {
|
||||
dispatch_async(handleQueue) {
|
||||
dispatch_async(parseQueue) {
|
||||
SocketParser.parseBinaryData(data, socket: self)
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user