This commit is contained in:
Erik 2015-06-24 06:51:47 -04:00
parent 63021eb995
commit ca3f3e810d

View File

@ -40,11 +40,11 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
private var fastUpgrade = false private var fastUpgrade = false
private var forcePolling = false private var forcePolling = false
private var forceWebsockets = false private var forceWebsockets = false
private var pingInterval:Int? private var pingInterval:Double?
private var pingTimer:NSTimer? private var pingTimer:NSTimer?
private var pingTimeout = 0 { private var pingTimeout = 0.0 {
didSet { didSet {
pongsMissedMax = pingTimeout / (pingInterval ?? 25) pongsMissedMax = Int(pingTimeout / (pingInterval ?? 25))
} }
} }
private var pongsMissed = 0 private var pongsMissed = 0
@ -404,9 +404,9 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
createWebsocket(andConnect: true) createWebsocket(andConnect: true)
} }
if let pingInterval = json["pingInterval"] as? Int, pingTimeout = json["pingTimeout"] as? Int { if let pingInterval = json["pingInterval"] as? Double, pingTimeout = json["pingTimeout"] as? Double {
self.pingInterval = pingInterval / 1000 self.pingInterval = pingInterval / 1000.0
self.pingTimeout = pingTimeout / 1000 self.pingTimeout = pingTimeout / 1000.0
} }
} else { } else {
client?.didError("Engine failed to handshake") client?.didError("Engine failed to handshake")
@ -650,8 +650,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
pingTimer?.invalidate() pingTimer?.invalidate()
dispatch_async(dispatch_get_main_queue()) {[weak self] in dispatch_async(dispatch_get_main_queue()) {[weak self] in
if let this = self { if let this = self {
this.pingTimer = NSTimer.scheduledTimerWithTimeInterval(NSTimeInterval(this.pingInterval!), this.pingTimer = NSTimer.scheduledTimerWithTimeInterval(this.pingInterval!, target: this,
target: this,
selector: Selector("sendPing"), userInfo: nil, repeats: true) selector: Selector("sendPing"), userInfo: nil, repeats: true)
} }
} }