replace fatalError with an error method

This commit is contained in:
Erik 2015-04-07 15:50:01 -04:00
parent fcc202ab04
commit 473d422668
3 changed files with 33 additions and 25 deletions

View File

@ -102,7 +102,7 @@ public class SocketEngine: NSObject, WebSocketDelegate {
self.ws?.disconnect() self.ws?.disconnect()
if fast || self.polling { if fast || self.polling {
self.client?.didForceClose("Disconnect") self.client?.engineDidForceClose("Disconnect")
} }
} }
@ -334,13 +334,14 @@ public class SocketEngine: NSObject, WebSocketDelegate {
if !self.closed && !self.client!.reconnecting { if !self.closed && !self.client!.reconnecting {
self.client?.pollingDidFail(reason) self.client?.pollingDidFail(reason)
} else if !self.client!.reconnecting { } else if !self.client!.reconnecting {
self.client?.didForceClose(reason) self.client?.engineDidForceClose(reason)
} }
} }
public func open(opts:[String: AnyObject]? = nil) { public func open(opts:[String: AnyObject]? = nil) {
if self.connected { if self.connected {
fatalError("Engine tried to open while connected") self.client?.engineDidError("Engine tried to open while connected")
return
} }
self.closed = false self.closed = false
@ -492,7 +493,7 @@ public class SocketEngine: NSObject, WebSocketDelegate {
self.createWebsocket(andConnect: true) self.createWebsocket(andConnect: true)
} }
} else { } else {
NSLog("Error handshaking") self.client?.engineDidError("Error parsing engine connect")
return return
} }
@ -500,7 +501,8 @@ public class SocketEngine: NSObject, WebSocketDelegate {
self.pingInterval = pingInterval / 1000 self.pingInterval = pingInterval / 1000
} }
} else { } else {
fatalError("Error parsing engine connect") self.client?.engineDidError("Error parsing engine connect")
return
} }
self.startPingTimer() self.startPingTimer()
@ -516,7 +518,7 @@ public class SocketEngine: NSObject, WebSocketDelegate {
} }
if self.polling { if self.polling {
self.client!.didForceClose("Disconnect") self.client!.engineDidForceClose("Disconnect")
} }
return return
@ -657,7 +659,7 @@ public class SocketEngine: NSObject, WebSocketDelegate {
self.probing = false self.probing = false
if self.closed { if self.closed {
self.client?.didForceClose("Disconnect") self.client?.engineDidForceClose("Disconnect")
return return
} }

View File

@ -32,7 +32,8 @@ import Foundation
var socketURL:String {get} var socketURL:String {get}
var secure:Bool {get} var secure:Bool {get}
func didForceClose(reason:String) func engineDidError(reason:String)
func engineDidForceClose(reason:String)
func parseSocketMessage(msg:String) func parseSocketMessage(msg:String)
func parseBinaryData(data:NSData) func parseBinaryData(data:NSData)
func pollingDidFail(err:String) func pollingDidFail(err:String)

View File

@ -228,20 +228,6 @@ public class SocketIOClient: NSObject, SocketEngineClient {
self.handleEvent("connect", data: nil, isInternalMessage: false) self.handleEvent("connect", data: nil, isInternalMessage: false)
} }
/// Server wants us to die
public func didForceClose(reason:String) {
if self.closed {
return
}
self._closed = true
self._connected = false
self.reconnects = false
self._connecting = false
self._reconnecting = false
self.handleEvent("disconnect", data: [reason], isInternalMessage: true)
}
/** /**
Same as close Same as close
*/ */
@ -339,6 +325,25 @@ public class SocketIOClient: NSObject, SocketEngineClient {
} }
} }
/// Engine error
public func engineDidError(reason:String) {
self.handleEvent("error", data: [reason], isInternalMessage: true)
}
/// Server wants us to die
public func engineDidForceClose(reason:String) {
if self.closed {
return
}
self._closed = true
self._connected = false
self.reconnects = false
self._connecting = false
self._reconnecting = false
self.handleEvent("disconnect", data: [reason], isInternalMessage: true)
}
// 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?) {
var ackData:[AnyObject]? var ackData:[AnyObject]?
@ -435,7 +440,7 @@ public class SocketIOClient: NSObject, SocketEngineClient {
// We lost connection and should attempt to reestablish // We lost connection and should attempt to reestablish
func tryReconnect() { func tryReconnect() {
if self.reconnectAttempts != -1 && self.currentReconnectAttempt + 1 > self.reconnectAttempts { if self.reconnectAttempts != -1 && self.currentReconnectAttempt + 1 > self.reconnectAttempts {
self.didForceClose("Reconnect Failed") self.engineDidForceClose("Reconnect Failed")
return return
} else if self.connected { } else if self.connected {
self._connecting = false self._connecting = false
@ -473,7 +478,7 @@ public class SocketIOClient: NSObject, SocketEngineClient {
self._connected = false self._connected = false
self._connecting = false self._connecting = false
if self.closed || !self.reconnects { if self.closed || !self.reconnects {
self.didForceClose("WebSocket closed") self.engineDidForceClose("WebSocket closed")
} else if !self.reconnecting { } else if !self.reconnecting {
self.handleEvent("reconnect", data: [reason], isInternalMessage: true) self.handleEvent("reconnect", data: [reason], isInternalMessage: true)
self.tryReconnect() self.tryReconnect()
@ -486,7 +491,7 @@ public class SocketIOClient: NSObject, SocketEngineClient {
self._connecting = false self._connecting = false
self.handleEvent("error", data: [error.localizedDescription], isInternalMessage: true) self.handleEvent("error", data: [error.localizedDescription], isInternalMessage: true)
if self.closed || !self.reconnects { if self.closed || !self.reconnects {
self.didForceClose("WebSocket closed with an error \(error)") self.engineDidForceClose("WebSocket closed with an error \(error)")
} else if !self.reconnecting { } else if !self.reconnecting {
self.handleEvent("reconnect", data: [error.localizedDescription], isInternalMessage: true) self.handleEvent("reconnect", data: [error.localizedDescription], isInternalMessage: true)
self.tryReconnect() self.tryReconnect()