always close fast. Don't handle acks after close
This commit is contained in:
parent
ea7e60cde2
commit
02971e14c2
@ -102,19 +102,20 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public func close(fast fast: Bool) {
|
public func close() {
|
||||||
Logger.log("Engine is being closed. Fast: %@", type: logType, args: fast)
|
Logger.log("Engine is being closed.", type: logType)
|
||||||
|
|
||||||
pingTimer?.invalidate()
|
pingTimer?.invalidate()
|
||||||
closed = true
|
closed = true
|
||||||
|
|
||||||
ws?.disconnect()
|
if websocket {
|
||||||
|
sendWebSocketMessage("", withType: .Close)
|
||||||
if fast || polling {
|
} else {
|
||||||
write("", withType: .Close, withData: nil)
|
sendPollMessage("", withType: .Close)
|
||||||
client?.engineDidClose("Disconnect")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ws?.disconnect()
|
||||||
|
client?.engineDidClose("Disconnect")
|
||||||
stopPolling()
|
stopPolling()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -35,7 +35,7 @@ import Foundation
|
|||||||
|
|
||||||
init(client: SocketEngineClient, opts: NSDictionary?)
|
init(client: SocketEngineClient, opts: NSDictionary?)
|
||||||
|
|
||||||
func close(fast fast: Bool)
|
func close()
|
||||||
func open(opts: [String: AnyObject]?)
|
func open(opts: [String: AnyObject]?)
|
||||||
func send(msg: String, withData datas: [NSData]?)
|
func send(msg: String, withData datas: [NSData]?)
|
||||||
func write(msg: String, withType type: SocketEnginePacketType, withData data: [NSData]?)
|
func write(msg: String, withType type: SocketEnginePacketType, withData data: [NSData]?)
|
||||||
|
|||||||
@ -169,7 +169,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
|
|||||||
dispatch_after(time, handleQueue) {[weak self] in
|
dispatch_after(time, handleQueue) {[weak self] in
|
||||||
if let this = self where this.status != .Connected {
|
if let this = self where this.status != .Connected {
|
||||||
this.status = .Closed
|
this.status = .Closed
|
||||||
this.engine?.close(fast: true)
|
this.engine?.close()
|
||||||
|
|
||||||
handler?()
|
handler?()
|
||||||
}
|
}
|
||||||
@ -218,7 +218,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
|
|||||||
reconnects = false
|
reconnects = false
|
||||||
|
|
||||||
// Make sure the engine is actually dead.
|
// Make sure the engine is actually dead.
|
||||||
engine?.close(fast: true)
|
engine?.close()
|
||||||
handleEvent("disconnect", data: [reason], isInternalMessage: true)
|
handleEvent("disconnect", data: [reason], isInternalMessage: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -322,6 +322,8 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
|
|||||||
|
|
||||||
// Called when the socket gets an ack for something it sent
|
// Called when the socket gets an ack for something it sent
|
||||||
func handleAck(ack: Int, data: AnyObject?) {
|
func handleAck(ack: Int, data: AnyObject?) {
|
||||||
|
guard status == .Connected else {return}
|
||||||
|
|
||||||
Logger.log("Handling ack: %@ with data: %@", type: logType, args: ack, data ?? "")
|
Logger.log("Handling ack: %@ with data: %@", type: logType, args: ack, data ?? "")
|
||||||
|
|
||||||
ackHandlers.executeAck(ack,
|
ackHandlers.executeAck(ack,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user