【问题标题】:Real time data in Laravel [closed]Laravel 中的实时数据 [关闭]
【发布时间】:2026-02-01 20:20:03
【问题描述】:

您好,我不知道在 Laravel 中处理实时数据的最佳方法是什么。

我正在创建一个仪表板,它将跟踪用户从登录时开始的当前时间。该跟踪器还将更新所有开始时间的用户的数据库记录。它将更新多列和多行。这些数据应该每秒更新一次,因为我们需要跟踪时间。

我们可以使用像crob jobs这样的东西吗?或者我们需要一个第三方系统,比如 pusher、pubnub 等。

我也在我的应用上使用 vuejs。

编辑======================

我已经完成了记录每个用户的小时数。现在,我想要显示所有当前登录的用户,他们当前和更新的时间来自数据库

【问题讨论】:

  • 这不是建议网站,请展示使用您尝试过的内容。
  • 在没有真正需要的情况下每秒更新数据库对我来说听起来有点矫枉过正。
  • 你好@Phiter 这是一个真正的需求,因为会有用户观看实时数据。该用户是当前正在登录的特定用户的主管。
  • @Webinion 我已经完成了记录每个用户的小时数。现在,我想要显示所有当前登录的用户,他们当前和更新的时间来自数据库。

标签: php laravel vue.js vuejs2


【解决方案1】:

您可以使用broadcastingPusher 来实现此目的。

https://laravel.com/docs/5.5/broadcasting#presence-channels

广播允许您创建channels,当用户加入或离开channel 时触发事件。

一个简单的方法是:

  • 在用户登录或转到特定页面时将其添加到channel

  • 使用会话变量或数据库之类的东西存储他们加入频道的时间

  • 当用户关闭页面或注销时,它们会自动从触发事件的channel 中删除

  • 比较他们从加入到离开的时间,看看他们登录或在特定页面等的时间。

如果您需要跟踪当前会话,您可以检查他们上次登录时间来自会话/数据库的时间并比较时间差

【讨论】:

  • 酷........
【解决方案2】:

大多数编程语言在特定任务上都有优势,在其他任务上也有弱点,我并不是说它们无能。 Php 是一种服务器端语言,主要用于方便数据库访问,主要是 mysql 数据库。

正如其他人所说,您需要一个前端,通常是 javascript,从后端提供 AJAX 或 Comet 更新,可以用 PHP 编写,尽管有更好的语言来编写生成 JSON 输出的应用程序。

最好的解决方案可能是基于 noSQL 的 PHP SDK。

您可以在以下位置试用 Firebase 实时 PHP SDK http://firebase-php.readthedocs.io/en/stable/realtime-database.html

希望对你有帮助! 谢谢

【讨论】: