@@ -119,14 +119,17 @@ class SocketIOClient {
119119 self . connected = true
120120 self . connecting = false
121121 self . reconnecting = false
122+ self . handleEvent ( " connect " , data: nil , isInternalMessage: false )
122123 }
123124
124125 // Server wants us to die
125126 func didForceClose( ) {
126127 self . closed = true
127- self . connecting = false
128128 self . connected = false
129+ self . reconnects = false
130+ self . connecting = false
129131 self . reconnecting = false
132+ self . handleEvent ( " disconnect " , data: " closed " , isInternalMessage: true )
130133 }
131134
132135 // Sends a message with multiple args
@@ -489,7 +492,6 @@ class SocketIOClient {
489492 if self . nsp != nil {
490493 if stringMessage == " 0/ \( self . nsp!) " {
491494 self . didConnect ( )
492- self . handleEvent ( " connect " , data: nil )
493495 return
494496 }
495497 }
@@ -503,7 +505,6 @@ class SocketIOClient {
503505 // Don't handle as internal because something crazy could happen where
504506 // we disconnect before it's handled
505507 self . didConnect ( )
506- self . handleEvent ( " connect " , data: nil )
507508 return
508509 }
509510 }
@@ -758,16 +759,20 @@ class SocketIOClient {
758759 }
759760 }
760761
762+ // Something happened while polling
763+ func pollingDidFail( ) {
764+ if !self . reconnecting {
765+ self . handleEvent ( " reconnect " , data: " XHR polling error " , isInternalMessage: true )
766+ self . tryReconnect ( triesLeft: self . reconnectAttempts)
767+ }
768+ }
769+
761770 // We lost connection and should attempt to reestablish
762771 func tryReconnect( var #triesLeft: Int ) {
763772 self . connected = false
764773
765774 if triesLeft != - 1 && triesLeft <= 0 {
766- self . connected = false
767- self . connecting = false
768- self . reconnects = false
769- self . reconnecting = false
770- self . handleEvent ( " disconnect " , data: " Failed to reconnect " , isInternalMessage: true )
775+ self . didForceClose ( )
771776 return
772777 } else if self . connected {
773778 self . connecting = false
@@ -776,7 +781,7 @@ class SocketIOClient {
776781 }
777782
778783 // println("Trying to reconnect #\(reconnectAttempts - triesLeft)")
779- self . handleEvent ( " reconnectAttempt " , data: triesLeft, isInternalMessage: true )
784+ self . handleEvent ( " reconnectAttempt " , data: triesLeft - 1 , isInternalMessage: true )
780785
781786 let waitTime = UInt64 ( self . reconnectWait) * NSEC_PER_SEC
782787 let time = dispatch_time ( DISPATCH_TIME_NOW, Int64 ( waitTime) )
@@ -802,27 +807,15 @@ class SocketIOClient {
802807 }
803808 }
804809
805- // Called when a message is recieved
806- func webSocket( webSocket: SRWebSocket ! , didReceiveMessage message: AnyObject ? ) {
807- dispatch_async ( self . handleQueue) { [ weak self] in
808- if self == nil {
809- return
810- }
811-
812- self ? . parseSocketMessage ( message)
813- }
814- }
815-
816810 // Called when the socket is closed
817811 func webSocketDidCloseWithCode( code: Int , reason: String ! , wasClean: Bool ) {
818812 self . connected = false
819813 self . connecting = false
820814 if self . closed || !self . reconnects {
821- self . handleEvent ( " disconnect " , data : reason , isInternalMessage : true )
815+ self . didForceClose ( )
822816 } else {
823817 self . handleEvent ( " reconnect " , data: reason, isInternalMessage: true )
824818 self . tryReconnect ( triesLeft: self . reconnectAttempts)
825-
826819 }
827820 }
828821
@@ -832,7 +825,7 @@ class SocketIOClient {
832825 self . connecting = false
833826 self . handleEvent ( " error " , data: error. localizedDescription, isInternalMessage: true )
834827 if self . closed || !self . reconnects {
835- self . handleEvent ( " disconnect " , data : error . localizedDescription , isInternalMessage : true )
828+ self . didForceClose ( )
836829 } else if !self . reconnecting {
837830 self . handleEvent ( " reconnect " , data: error. localizedDescription, isInternalMessage: true )
838831 self . tryReconnect ( triesLeft: self . reconnectAttempts)
0 commit comments