Обнаружение отключения клиентов в кварте

Я пытаюсь сделать веб-игру с помощью веб-фреймворка Python (фляга с функциями asyncio), пока у меня есть сервер и клиент. У меня есть система для отключения клиентов, хотя у меня есть проблема с ней; Иногда (в основном, с повторной загрузкой страницы) система удаления никогда не запускается. Есть ли какие-либо факторы клиента, которые могут повлиять на это? Проблема кажется более частой с моим обновленным клиентом, хотя я понятия не имею, что могло бы вызвать его.

Это моя система добавления и удаления игроков при их подключении / отключении:

async def wrapper(*args, **kwargs):
    global connected
    connected.add(websocket._get_current_object())

    clientIds.append(player_classes.ID(websocket._get_current_object(), 0))
    for IDS in clientIds:
        if(IDS.ws == websocket._get_current_object()):
            ids.append(str(IDS.id))


    try:
        return await func(*args, **kwargs)

    finally:
        for Player in Players:
            if(Player.id > 50):
                if(Player.ws == websocket):
                    connected.remove(websocket._get_current_object())
                    Player.alive = 0
                    for ID in clientIds:
                        clientIds.remove(ID)

0 ответов

Другие вопросы по тегам