Автоматический тайм-аут сессии в php - PullRequest
1 голос
/ 13 марта 2012

Я делаю тайм-аут сессии с php. Я звоню php через Аякс. Через X секунд бездействия, если пользователь отправляет запрос, он перенаправляется на страницу входа, так как сессия уже истекла.

Как автоматически отправить сообщение об истечении времени ожидания сеанса в браузер и не ждете триггера запроса?

Например, у меня должен быть поток, работающий в фоновом режиме, чтобы проверить время. всегда? У вас есть идеи, ребята?

Большое спасибо.

1 Ответ

2 голосов
/ 13 марта 2012

Отправка запроса с сервера в браузер через ajax называется длинным опросом, или «кометой». Это проверенная техника, но теперь без подводных камней.

Во-первых, соединение должно оставаться открытым для каждого пользователя. Это много накладных расходов, так что это должно быть сделано с чем-то вроде NodeJS. Тем не менее, длительный опрос должен сбрасываться каждые 20 с или около того, что приводит к изменчивому коду. Более новые браузеры вводят веб-сокеты, которые улучшают вещи, но требуют структуры с механизмами резервирования. Вопрос в том, стоит ли оно того для вашего приложения.

В вашей ситуации я бы применил тот же механизм тайм-аута в JavaScript. Таким образом, пользователь получает приятное сообщение, когда время сеанса заканчивается в JavaScript, и сервер применяет тайм-аут, если пользователь по какой-то причине обходит браузер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...