Skip to content

Commit a4e81fe

Browse files
committed
fix outstanding poll messages after switch to websockets
1 parent 9489676 commit a4e81fe

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

SwiftIO/SocketEngine.swift

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,12 @@ public class SocketEngine: NSObject, WebSocketDelegate {
174174
}
175175

176176
private func doFastUpgrade() {
177-
self.sendWebSocketMessage("", withType: PacketType.UPGRADE)
177+
if self.waitingForPoll {
178+
NSLog("Outstanding poll when switched to websockets," +
179+
"we'll probably disconnect soon. You should report this.")
180+
}
181+
182+
self.sendWebSocketMessage("", withType: PacketType.UPGRADE, datas: nil)
178183
self._websocket = true
179184
self._polling = false
180185
self.fastUpgrade = false
@@ -207,6 +212,8 @@ public class SocketEngine: NSObject, WebSocketDelegate {
207212
} else if err != nil {
208213
if self!.polling {
209214
self?.handlePollingFailed(err.localizedDescription)
215+
} else {
216+
NSLog(err.localizedDescription)
210217
}
211218

212219
return
@@ -222,11 +229,10 @@ public class SocketEngine: NSObject, WebSocketDelegate {
222229
}
223230

224231
self?.waitingForPoll = false
225-
226232
if self!.fastUpgrade {
227233
self?.doFastUpgrade()
228234
return
229-
} else if !self!.closed && !self!.websocket {
235+
} else if !self!.closed && self!.polling {
230236
self?.doPoll()
231237
}
232238
}.resume()
@@ -291,14 +297,14 @@ public class SocketEngine: NSObject, WebSocketDelegate {
291297
} else if err != nil && self!.polling {
292298
self?.handlePollingFailed(err.localizedDescription)
293299
return
300+
} else if err != nil {
301+
NSLog(err.localizedDescription)
302+
return
294303
}
295304

296305
self?.waitingForPost = false
297306
dispatch_async(self!.emitQueue) {
298-
if self!.fastUpgrade {
299-
self?.doFastUpgrade()
300-
return
301-
} else {
307+
if !self!.fastUpgrade {
302308
self?.flushWaitingForPost()
303309
self?.doPoll()
304310
}
@@ -611,6 +617,7 @@ public class SocketEngine: NSObject, WebSocketDelegate {
611617
if self.websocketConnected {
612618
// NSLog("Doing fast upgrade")
613619
// Do a fast upgrade
620+
// At this point, we should not send anymore polling messages-
614621
self.fastUpgrade = true
615622
self.sendPollMessage("", withType: PacketType.NOOP)
616623
}

0 commit comments

Comments
 (0)