Существует много возможных решений, и вы, вероятно, должны опубликовать код для своей реализации, если хотите вернуть код.
В качестве общего вопроса о дизайне вам, вероятно, понадобится средство для хранения количества пользователей в Интернете (подробнее об обнаружении этого ниже) либо в памяти (бэкэнд-сервис, в БД памяти, такой как redis или memcached), либо на диске (обычный БД).
Что касается обнаружения, когда пользователи подключены к сети, это может быть довольно сложной проблемой, но если предположить, что точное число до второго номера не так важно, вы можете увеличить число (в БД или памяти сверху) когда вы обслуживаете страницу (PHP) или когда пользователь загружает страницу (Javascript).
Что касается обнаружения, когда пользователь прошел навигацию, вы можете использовать обработчик onunload
в Javascript, чтобы он уведомлял сервер, когда пользователь перемещается. Одно из предостережений - это то, что это сообщение может быть потеряно или не отправлено (т. Е. Отключено JS, сбой браузера и т. Д.), И ваш счет может стать дико неточным.
Кроме того, клиент может пинговать сервер с сердцебиением каждый [predefined interval]
и сервер будет знать, что они находятся в сети (декремент счетчика, когда пользователь прекращает посылать сердцебиение, предполагая, что они перемещаться в сторону)
На основе этих высокого уровня, их также можно объединить, чтобы сформировать гибридное решение, используя heartbeats, чтобы обнаружить, что пользователи все еще находятся в сети, и обработчик onunload
, чтобы сразу же сообщить серверу о закрытии/навигации.
Наконец, как и примечание о работе cron, Windows не имеет cron
per se, но может выполнить аналогичную цель, используя запланированные задачи.
есть ли настройки баз данных, которая будет удалить их после й минут, если она не была обновлена в течение й минут – Cheesecake
Или может вы указываете мне в правильном направлении для биения сердца идея? – Cheesecake
обратитесь к моему ответу, чтобы узнать, как я это сделал – Cheesecake