         heartbeatTimer?.invalidate()
         heartbeatTimer = NSTimer.scheduledTimerWithTimeInterval(30,
             target: self, selector: "sendHeartbeat", userInfo: nil, repeats: true)
+        // statuses set when we were connecting socket
         channels.forEach(sendJoinEvent)
     }
     

                target: self, selector: "sendHeartbeat", userInfo: nil, repeats: true)
        } else {
            log("Connecting to", socket.currentURL)
            socket.connect()
        }
    }

        
        log("Joining channel:", channel.topic)
        let payload = channel.joinPayload ?? [:]
        // Use send message to skip channel joined check
        sendMessage(Message(Event.Join, topic: channel.topic, payload: payload)) { [weak self] result in
            switch result {
