Доброго дня!
Есть стандартная функция отключения клиента от комнаты:
def __client_leave_room(self, data):
"""
Метод отключения клиента от комнаты.
:param data: Данные пользователя. Приходят с клиента.
:return:
"""
username = data["username"]
name_room = data["room"]
if name_room not in self.__list_rooms:
# Ошибка, такой комнаты нет.
pass
leave_room(name_room)
print(f"{username}'s disconnected from {name_room}")
Забыл сказать о том, что это вовсе не функция, а метод в классе. Он рабочий.
Проблема в том, что она хорошо работает, когда юзер нажимает на клиенте кнопку "Disconnect", но если он закроет, обновит или уйдет со страницы, тогда эта функция не срабатывает, хотя на клиенте я прописал это:
socket.on("disconnect", function() {
socket.emit("leave", {username: username, room: room});
});
Заранее спасибо за ответы!