【发布时间】:2015-02-23 09:49:01
【问题描述】:
我正在尝试通过使用 Laravel SessionId 将一些变量添加到 Laravel 会话中。这样做的原因是我正在尝试从远程源(队列作业)更新会话数据,并让客户端能够通过 AJAX 获取请求检索此数据。该作业可能会运行几分钟或几小时,因此我需要一种方法来相应地更新客户端。
我的想法是我将 Laravel SessionId(通过Session::getId())发送到作业,作业通过 sessionId 查找 Session 并将属性动态推送到会话,而客户端通过 AJAX 长轮询到主服务器返回由作业推送到会话的属性,然后删除所有刚刚刷新到客户端的属性。
如果有帮助的话,我还在 Amazon ElastiCache 上使用 Redis 集群驱动程序。
从我目前看到的情况来看,访问会话的唯一方法是使用 Session 外观,这是一个静态类,我基本上是在寻找诸如 $session = SessionAccessor::findSessionById($sessionId) 之类的东西效果。
这在 Laravel 中可行吗?
【问题讨论】:
-
使用原始 PHP 也不是不可能的,因为不可能知道有多少其他会话已启动以及它们的 ID。但是必须有另一种方法来解决这个问题
-
我没有使用原始 PHP 会话;我使用的是 Redis 集群,绝对可以连接到 Redis 并直接操作存储的数据,但是我试图找出一种使用 Laravel 框架的方法。