Invalidate timer on reconnect failure

This commit is contained in:
Erik 2015-07-03 13:58:06 -04:00
parent 283644b75c
commit 998089df91

View File

@ -139,6 +139,11 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
engine = SocketEngine(client: self, opts: opts)
}
private func clearReconnectTimer() {
reconnectTimer?.invalidate()
reconnectTimer = nil
}
/**
Closes the socket. Only reopen the same socket if you know what you're doing.
Will turn off automatic reconnects.
@ -222,8 +227,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
_connecting = false
_reconnecting = false
currentReconnectAttempt = 0
reconnectTimer?.invalidate()
reconnectTimer = nil
clearReconnectTimer()
// Don't handle as internal because something crazy could happen where
// we disconnect before it's handled
@ -482,7 +486,9 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
// We lost connection and should attempt to reestablish
@objc private func tryReconnect() {
if reconnectAttempts != -1 && currentReconnectAttempt + 1 > reconnectAttempts || !reconnects {
clearReconnectTimer()
didDisconnect("Reconnect Failed")
return
} else if connected {
_connecting = false