                 target: self, selector: "sendHeartbeat", userInfo: nil, repeats: true)
         } else {
             log("Connecting to", socket.currentURL)
+            channels.forEach { $0.status = .Joining }
             socket.connect()
         }
     }

        heartbeatTimer?.invalidate()
        heartbeatTimer = NSTimer.scheduledTimerWithTimeInterval(30,
            target: self, selector: "sendHeartbeat", userInfo: nil, repeats: true)
        channels.forEach(sendJoinEvent)
    }
    

        
        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 {
