【发布时间】:2019-11-23 21:08:50
【问题描述】:
我是 Laravel 的新手,我想到了一个可能的场景。
假设我们在一个页面上工作,我们在其中设计了一些项目。由于我们只在该页面上工作,我们不会向服务器发送任何请求,这意味着我们可以在加载页面后 X 分钟内保存我们的项目,其中 X 是会话时间的分钟数。
我知道从前端我们可以执行一些超时功能来保存项目,但是如果不使用前端,我们可以在会话到期前 5 分钟触发一个功能吗?
【问题讨论】:
我是 Laravel 的新手,我想到了一个可能的场景。
假设我们在一个页面上工作,我们在其中设计了一些项目。由于我们只在该页面上工作,我们不会向服务器发送任何请求,这意味着我们可以在加载页面后 X 分钟内保存我们的项目,其中 X 是会话时间的分钟数。
我知道从前端我们可以执行一些超时功能来保存项目,但是如果不使用前端,我们可以在会话到期前 5 分钟触发一个功能吗?
【问题讨论】:
您可以尝试多种方法来实现此要求。最简单的解决方案是将会话有效时间传递给前端 javascript。因此,使用该值,您可以使用 javascript 中的 setTimeout 设置计时器,以向用户发出通知。
另一种方法是使用WebSockets,大多数现代Web浏览器都支持,Websockets允许双工连接,这意味着您可以从服务器向客户端推送通知,但是设置它需要一些知识在 WebSockets 中,您可能需要使用一些服务,例如 socket.io 或 pusher。 Laravel 开箱即用地支持这两种服务,并为我们提供了一个名为 Laravel echo 的库来做前端脚手架。但这需要相当多的 laravel 事件和广播知识,当然还有 WebSockets。
【讨论】: