From 473d42266803c4db3d13b05d0206152fdbe9f71b Mon Sep 17 00:00:00 2001 From: Erik Date: Tue, 7 Apr 2015 15:50:01 -0400 Subject: [PATCH] replace fatalError with an error method --- SwiftIO/SocketEngine.swift | 16 +++++++------ SwiftIO/SocketEngineClient.swift | 3 ++- SwiftIO/SocketIOClient.swift | 39 ++++++++++++++++++-------------- 3 files changed, 33 insertions(+), 25 deletions(-) diff --git a/SwiftIO/SocketEngine.swift b/SwiftIO/SocketEngine.swift index 3b93fe8..0b228d1 100644 --- a/SwiftIO/SocketEngine.swift +++ b/SwiftIO/SocketEngine.swift @@ -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 } diff --git a/SwiftIO/SocketEngineClient.swift b/SwiftIO/SocketEngineClient.swift index 3334397..6c4a7db 100644 --- a/SwiftIO/SocketEngineClient.swift +++ b/SwiftIO/SocketEngineClient.swift @@ -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) diff --git a/SwiftIO/SocketIOClient.swift b/SwiftIO/SocketIOClient.swift index 455ff29..61988ad 100644 --- a/SwiftIO/SocketIOClient.swift +++ b/SwiftIO/SocketIOClient.swift @@ -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()