This commit is contained in:
parent
2712461044
commit
7d08f962d5
@ -31,10 +31,13 @@ public typealias AckCallback = (NSArray?) -> Void
|
||||
let event:String!
|
||||
var acked = false
|
||||
var callback:AckCallback?
|
||||
weak var socket:SocketIOClient?
|
||||
|
||||
|
||||
init(event:String, ackNum:Int = 0) {
|
||||
init(event:String, ackNum:Int = 0, socket:SocketIOClient) {
|
||||
self.ackNum = ackNum
|
||||
self.event = event
|
||||
self.socket = socket
|
||||
}
|
||||
|
||||
public func onAck(timeout:UInt64, withCallback callback:AckCallback) {
|
||||
@ -50,6 +53,7 @@ public typealias AckCallback = (NSArray?) -> Void
|
||||
|
||||
if !self!.acked {
|
||||
self?.executeAck(["No ACK"])
|
||||
self?.socket?.removeAck(self!)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -198,11 +198,12 @@ public class SocketIOClient: NSObject {
|
||||
|
||||
public func emitWithAck(event:String, _ args:AnyObject...) -> SocketAckHandler {
|
||||
if !self.connected {
|
||||
return SocketAckHandler(event: "fail")
|
||||
return SocketAckHandler(event: "fail", socket: self)
|
||||
}
|
||||
|
||||
self.currentAck++
|
||||
let ackHandler = SocketAckHandler(event: event, ackNum: self.currentAck)
|
||||
let ackHandler = SocketAckHandler(event: event,
|
||||
ackNum: self.currentAck, socket: self)
|
||||
self.ackHandlers.append(ackHandler)
|
||||
|
||||
dispatch_async(self.emitQueue) {[weak self] in
|
||||
@ -385,6 +386,10 @@ public class SocketIOClient: NSObject {
|
||||
}
|
||||
}
|
||||
|
||||
func removeAck(ack:SocketAckHandler) {
|
||||
self.ackHandlers = self.ackHandlers.filter {$0 === ack ? false : true}
|
||||
}
|
||||
|
||||
// We lost connection and should attempt to reestablish
|
||||
func tryReconnect() {
|
||||
if self.reconnectAttempts != -1 && self.currentReconnectAttempt + 1 > self.reconnectAttempts {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user