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

View File

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

View File

@ -228,20 +228,6 @@ public class SocketIOClient: NSObject, SocketEngineClient {
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
*/
@ -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
func handleAck(ack:Int, data:AnyObject?) {
var ackData:[AnyObject]?
@ -435,7 +440,7 @@ public class SocketIOClient: NSObject, SocketEngineClient {
// We lost connection and should attempt to reestablish
func tryReconnect() {
if self.reconnectAttempts != -1 && self.currentReconnectAttempt + 1 > self.reconnectAttempts {
self.didForceClose("Reconnect Failed")
self.engineDidForceClose("Reconnect Failed")
return
} else if self.connected {
self._connecting = false
@ -473,7 +478,7 @@ public class SocketIOClient: NSObject, SocketEngineClient {
self._connected = false
self._connecting = false
if self.closed || !self.reconnects {
self.didForceClose("WebSocket closed")
self.engineDidForceClose("WebSocket closed")
} else if !self.reconnecting {
self.handleEvent("reconnect", data: [reason], isInternalMessage: true)
self.tryReconnect()
@ -486,7 +491,7 @@ public class SocketIOClient: NSObject, SocketEngineClient {
self._connecting = false
self.handleEvent("error", data: [error.localizedDescription], isInternalMessage: true)
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 {
self.handleEvent("reconnect", data: [error.localizedDescription], isInternalMessage: true)
self.tryReconnect()