Skip to content

Commit 0a378df

Browse files
authored
Merge pull request #65 from spreaker/fix-autoreconnect
Fix autoreconnect
2 parents 73dee92 + 6661d56 commit 0a378df

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

Source/PusherChannel.swift

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -84,14 +84,11 @@ public class PusherChannel {
8484
*/
8585
public func handleEvent(eventName: String, eventData: String) {
8686
if let eventHandlerArray = self.eventHandlers[eventName] {
87-
if let _ = connection.options.attemptToReturnJSONObject {
88-
for eventHandler in eventHandlerArray {
89-
eventHandler.callback(connection.getEventDataJSONFromString(eventData))
90-
}
91-
} else {
92-
for eventHandler in eventHandlerArray {
93-
eventHandler.callback(eventData)
94-
}
87+
88+
let jsonize = connection.options.attemptToReturnJSONObject ?? false
89+
90+
for eventHandler in eventHandlerArray {
91+
eventHandler.callback(jsonize ? connection.getEventDataJSONFromString(eventData) : eventData)
9592
}
9693
}
9794
}

Source/PusherWebsocketDelegate.swift

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,20 @@ extension PusherConnection: WebSocketDelegate {
3131
- parameter error: The error, if one exists, when disconnected
3232
*/
3333
public func websocketDidDisconnect(ws: WebSocket, error: NSError?) {
34-
if let error = error {
35-
print("Websocket is disconnected: \(error.localizedDescription)")
36-
}
3734

3835
updateConnectionState(.Disconnected)
3936
for (_, channel) in self.channels.channels {
4037
channel.subscribed = false
4138
}
42-
39+
40+
// Handle error (if any)
41+
guard let error = error where error.code != Int(WebSocket.CloseCode.Normal.rawValue) else {
42+
return
43+
}
44+
45+
print("Websocket is disconnected. Error: \(error.localizedDescription)")
46+
47+
// Reconnect if possible
4348
if let reconnect = self.options.autoReconnect where reconnect {
4449
if let reachability = self.reachability where reachability.isReachable() {
4550
let operation = NSBlockOperation {

0 commit comments

Comments
 (0)