def add_client(self, user_id=None):
        """
        Adds current instance to public or private channel.
        If user_id is specified it will be added to the private channel,
        If user_id is not specified it will be added to the public one instead.
        """
        if user_id is None:
            # generate a random uuid if it's an unauthenticated client
            self.channel = 'public'
            user_id = uuid.uuid1().hex
        else:
            self.channel = 'private'
        
        self.id = user_id
        self.channels[self.channel][self.id] = self
        print 'Client connected to the %s channel.' % self.channel
Adds current instance to public or private channel.
        If user_id is specified it will be added to the private channel,
        If user_id is not specified it will be added to the public one instead.