У меня есть веб-приложение, работающее в PHP поверх фреймворка CakePHP в IIS на сервере Windows 2008.Совместное использование сеансов с Redis между узлом и PHP
Теперь это приложение опроса каждые 6 секунд для каждого подключенного пользователя, чтобы обновить часть экрана, и это вызывает тенденцию запросов к серверу IIS и замедляет работу всей системы, когда база данных Oracle занята.
В попытке решить эту проблему я подумываю об использовании Node.js для решения этой проблемы и использования push-уведомлений. Таким образом, каждые 6 секунд узел будет вызывать уведомления обо всех активных клиентах браузера.
Проблема, с которой я сталкиваюсь, заключается в том, что вызов, который я делаю, использует зарегистрированный пользователь сеанс. (для вызова БД, и как только я получу данные, чтобы обновить сеанс).
Я читал Redis может быть решением для этого, и я видел posts explaining how to share the session. Но кое-что еще не получается:
Как я могу провести сеанс зарегистрированного пользователя? Должен ли я перебирать все активные сеансы?
Я хочу создать setInterval
в узле для запроса БД для каждого зарегистрированного пользователя.
Почему бы вам не поговорить с php и браузером через веб-сокеты и не заставить php нажимать данные клиентам вместо того, чтобы клиенты делали пул? Я не знаком с php извините, но в узле мы используем веб-сокеты и его довольно легко. Я имею в виду ... для чего нужны веб-узлы. и я предполагаю, что php также должен поддерживать сетевые сокеты. Таким образом, вы можете оставить свой backend консолидированным. – sagie
@sagie нет ничего подобного 'setInterval' в PHP. PHP запускается только тогда, когда пользователь делает запрос. В противном случае вам понадобится задача cron или schedule, которая, конечно же, также не будет иметь доступа к сеансам. (а в окнах минимальное время для стрельбы - 5 минут) – Alvaro
в порядке вас, поэтому вам, возможно, придется посмотреть, как php хранит сеанс в redis и расширяет хранилище сеансов экспресс-redis, чтобы прочитать этот формат. проблема в том, что многие посредники любят писать материал на сессии, поэтому ваш магазин redis сеанса должен будет позаботиться об этом. – sagie