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