def register(self, conn, user_name):
        '''register new user, and  login the user'''
        if user_name in users:
            self.__send_data_close(conn, usr_exist)
            return False

        user = User(username=user_name)
        user.login(conn)

        users[user_name] = user
        conn_user_map[conn] = user
        token_user_map[user.token] = user
        self.__send_data(conn=conn, info=info_ok, kind=kind_register, token=user.token)

        return True