Обнаружение отключения клиентов в кварте
Я пытаюсь сделать веб-игру с помощью веб-фреймворка 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)