fix outstanding poll messages after switch to websockets
This commit is contained in:
parent
9489676009
commit
a4e81fee6a
@ -174,7 +174,12 @@ public class SocketEngine: NSObject, WebSocketDelegate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func doFastUpgrade() {
|
private func doFastUpgrade() {
|
||||||
self.sendWebSocketMessage("", withType: PacketType.UPGRADE)
|
if self.waitingForPoll {
|
||||||
|
NSLog("Outstanding poll when switched to websockets," +
|
||||||
|
"we'll probably disconnect soon. You should report this.")
|
||||||
|
}
|
||||||
|
|
||||||
|
self.sendWebSocketMessage("", withType: PacketType.UPGRADE, datas: nil)
|
||||||
self._websocket = true
|
self._websocket = true
|
||||||
self._polling = false
|
self._polling = false
|
||||||
self.fastUpgrade = false
|
self.fastUpgrade = false
|
||||||
@ -207,6 +212,8 @@ public class SocketEngine: NSObject, WebSocketDelegate {
|
|||||||
} else if err != nil {
|
} else if err != nil {
|
||||||
if self!.polling {
|
if self!.polling {
|
||||||
self?.handlePollingFailed(err.localizedDescription)
|
self?.handlePollingFailed(err.localizedDescription)
|
||||||
|
} else {
|
||||||
|
NSLog(err.localizedDescription)
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
@ -222,11 +229,10 @@ public class SocketEngine: NSObject, WebSocketDelegate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
self?.waitingForPoll = false
|
self?.waitingForPoll = false
|
||||||
|
|
||||||
if self!.fastUpgrade {
|
if self!.fastUpgrade {
|
||||||
self?.doFastUpgrade()
|
self?.doFastUpgrade()
|
||||||
return
|
return
|
||||||
} else if !self!.closed && !self!.websocket {
|
} else if !self!.closed && self!.polling {
|
||||||
self?.doPoll()
|
self?.doPoll()
|
||||||
}
|
}
|
||||||
}.resume()
|
}.resume()
|
||||||
@ -291,14 +297,14 @@ public class SocketEngine: NSObject, WebSocketDelegate {
|
|||||||
} else if err != nil && self!.polling {
|
} else if err != nil && self!.polling {
|
||||||
self?.handlePollingFailed(err.localizedDescription)
|
self?.handlePollingFailed(err.localizedDescription)
|
||||||
return
|
return
|
||||||
|
} else if err != nil {
|
||||||
|
NSLog(err.localizedDescription)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
self?.waitingForPost = false
|
self?.waitingForPost = false
|
||||||
dispatch_async(self!.emitQueue) {
|
dispatch_async(self!.emitQueue) {
|
||||||
if self!.fastUpgrade {
|
if !self!.fastUpgrade {
|
||||||
self?.doFastUpgrade()
|
|
||||||
return
|
|
||||||
} else {
|
|
||||||
self?.flushWaitingForPost()
|
self?.flushWaitingForPost()
|
||||||
self?.doPoll()
|
self?.doPoll()
|
||||||
}
|
}
|
||||||
@ -611,6 +617,7 @@ public class SocketEngine: NSObject, WebSocketDelegate {
|
|||||||
if self.websocketConnected {
|
if self.websocketConnected {
|
||||||
// NSLog("Doing fast upgrade")
|
// NSLog("Doing fast upgrade")
|
||||||
// Do a fast upgrade
|
// Do a fast upgrade
|
||||||
|
// At this point, we should not send anymore polling messages-
|
||||||
self.fastUpgrade = true
|
self.fastUpgrade = true
|
||||||
self.sendPollMessage("", withType: PacketType.NOOP)
|
self.sendPollMessage("", withType: PacketType.NOOP)
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user