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 emitQueue = dispatch_queue_create("com.socketio.emitQueue", DISPATCH_QUEUE_SERIAL)
|
||||||
private let logType = "SocketIOClient"
|
private let logType = "SocketIOClient"
|
||||||
|
private let parseQueue = dispatch_queue_create("com.socketio.parseQueue", DISPATCH_QUEUE_SERIAL)
|
||||||
|
|
||||||
private var anyHandler: ((SocketAnyEvent) -> Void)?
|
private var anyHandler: ((SocketAnyEvent) -> Void)?
|
||||||
private var currentReconnectAttempt = 0
|
private var currentReconnectAttempt = 0
|
||||||
@ -52,6 +53,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
|
|||||||
private(set) var currentAck = -1
|
private(set) var currentAck = -1
|
||||||
private(set) var handleQueue = dispatch_get_main_queue()
|
private(set) var handleQueue = dispatch_get_main_queue()
|
||||||
private(set) var reconnectAttempts = -1
|
private(set) var reconnectAttempts = -1
|
||||||
|
|
||||||
var waitingData = [SocketPacket]()
|
var waitingData = [SocketPacket]()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -344,23 +346,20 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
|
|||||||
|
|
||||||
Logger.log("Handling event: %@ with data: %@", type: logType, args: event, data ?? "")
|
Logger.log("Handling event: %@ with data: %@", type: logType, args: event, data ?? "")
|
||||||
|
|
||||||
if anyHandler != nil {
|
|
||||||
dispatch_async(handleQueue) {
|
dispatch_async(handleQueue) {
|
||||||
|
if self.anyHandler != nil {
|
||||||
self.anyHandler?(SocketAnyEvent(event: event, items: data))
|
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) {
|
public func parseSocketMessage(msg: String) {
|
||||||
dispatch_async(handleQueue) {
|
dispatch_async(parseQueue) {
|
||||||
SocketParser.parseSocketMessage(msg, socket: self)
|
SocketParser.parseSocketMessage(msg, socket: self)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public func parseBinaryData(data: NSData) {
|
public func parseBinaryData(data: NSData) {
|
||||||
dispatch_async(handleQueue) {
|
dispatch_async(parseQueue) {
|
||||||
SocketParser.parseBinaryData(data, socket: self)
|
SocketParser.parseBinaryData(data, socket: self)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user