Итак, я разрабатываю (больше играю) игру в реальном времени в node.js, я также использую Redis и Sockets.io. У меня есть игроки, которые создают лобби и присоединяются к нему (что-то вроде чата перед игрой, где вы можете поговорить с игроками и выбрать настройки игры). Клиент написан на HTML / CSS / JS. В любом случае, я хочу иметь возможность сообщать, когда игроки отключаются от лобби, обновлять количество игроков, присоединившихся к интерфейсу (и имен игроков, к которым присоединяются).
Два варианта, о которых я подумал:
Использование функции тайм-аута значения ключа redis для удаления определенного поля, если оно не обновляется в течение x времени. Затем я бы попросил хост проверить наличие этого поля, чтобы проверить наличие DC. Я действительно задаюсь вопросом, если это крайне неэффективно, так как многие пользователи потенциально будут играть, поэтому будет плохо иметь много значений тайм-аута в Redis, а также многие другие пользователи, опрашивающие эти поля.
Я мог бы использовать sockets.io on ('отключить', ..) для обновления поля. Однако я не уверен, что это событие сработает, если, например, пользовательский компьютер зависнет?
В любом случае, я открыт для любых других идей!