Я пытаюсь добавить некоторые переменные в сеанс Laravel, просто используя Laravel SessionId. Причина этого заключается в том, что я пытаюсь обновить данные сеанса из удаленного источника (задание очереди) и предоставить клиенту возможность получить эти данные с запросом на получение AJAX. Работа может выполняться в течение нескольких минут или часов, поэтому мне нужен способ для обновления клиента.Добавить в сеанс Laravel по идентификатору сеанса?
Идея заключается в том, что я посылаю Laravel SessionId (через Session::getId()
) задание, задание просматривает сеанс через sessionId и динамически подталкивает атрибуты сессии, в то время как клиент долгие опросы через AJAX по маршруту на главной сервер, который возвращает атрибуты, перенесенные в сеанс заданием, а затем удаляет все атрибуты, которые просто были сброшены клиенту.
Я также использую драйвер кластера Redis на Amazon ElastiCache, если это помогает.
Из того, что я видел до сих пор, единственный способ получить доступ к сеансу - использовать фасад Session
, который является статическим классом, я в основном ищу что-то вроде $session = SessionAccessor::findSessionById($sessionId)
или что-то в этом роде.
Возможно ли это в Ларавеле?
Ничего не получается с необработанным PHP, так как невозможно узнать, сколько еще запущено новых сеансов и их идентификаторы. Но для решения этой проблемы должен быть другой способ: – Yang
Я не использую сырые сессии PHP, хотя; Я использую кластер Redis, безусловно, можно подключиться к Redis и напрямую манипулировать хранимыми данными, однако я пытался выяснить способ сделать это с помощью Laravel Framework. –