Node.js, socket.io создание задержки
Здравствуйте!
Есть сервер на node.js на express и на нем socket.oi надстройка.
Возникла следующая мысль. Создать на каждой странице сайта скрипт, который будет подсоединяться к socket.io. Таким образом я думаю обеспечить отображение суммарного количества пользователей, просматривающих страницы сайта, организовать глобальный единый транспорт и еще много чего).
Проблема в том, что когда кто-то переходит по страницам - срабатывает событие disconnect. Если пользователей много цифра количества посетителей будет дребезжать, сервер будет спамить событиями.
Идея. Создать при событии disconnect на сокете таймаут с малой задержкой, и записать timeoutID в сессию пользователя. Если это был переход и подключение к сокету произошло до истечения таймаута, то при событии connection прочтется timeoutID из сессии и таймаут будет отменен. В противном случае, пользователь скорее всего закрыл окно, сработает событие ухода, установленное в таймауте.
На деле, конечно, нельзя сохранить этот объект в сессию. Да и я практически уверен, что изобретаю костыльный велосипед.
Подскажите пожалуйста, как подобную идею можно реализовать? Как исключить переподключение к сокету при переходах?
|