Форум Текущие онлайн пользователи

У меня есть свой собственный скрипт форума на PHP (на самом деле Yii2), и я хочу показать онлайн-пользователям.
Было бы легко, если бы пользователи были активны до выхода из системы. Но это не тот случай. В большинстве случаев пользователь оставляет свои машины в системе, но они не активны. Здесь я мог бы использовать ограничение по времени (продление времени с каждым запросом и удаление тех, которые превысили этот срок), но разве это не излишне?

Есть ли какой-нибудь популярный / лучший способ мониторинга онлайн-пользователей на форуме?

1

Решение

Одним из возможных способов является перехват событий пользовательского интерфейса в javascript и отправка ajax-уведомления на сервер о том, что пользователь все еще там. Конечно, это должно быть буферизовано, чтобы вы не залились запросами, когда пользователь перемещает мышь. Нечто подобное

$('body').on('keydown mousemove scroll', function() {

clearTimeout(notifyTimer);
notifyTimer = setTimeout(function() {
$.get('my-server.com/user-is-active');
}, 60 * 1000);
});

На стороне сервера обновите last-active поле в таблице пользователей с текущей отметкой времени. При отображении онлайн-пользователей выберите тех, у кого last-active > now - 15 min,

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]