【问题标题】:Real time update front end data comming from laravel实时更新来自 laravel 的前端数据
【发布时间】:2018-06-20 13:27:08
【问题描述】:

原始问题 我对 PHP Web 开发和 Laravel 比较陌生,正在寻找一种实时更新前端数据的好方法。我正在开发一个简单的基于网络的游戏,可以与多个玩家一起玩。轮到玩家时,所有玩家前端的数据都需要更新。

我知道有两种方法可以做到这一点

  1. 网络套接字: Laravel 默认不支持 websockets,这意味着我需要使用像 socket IO 这样的第三方服务。因为我只想在“普通”虚拟主机上运行我的应用程序,所以这不是一个选项。
  2. 推送消息:我也可以将推送消息与 Pusher 或 firebase 等服务一起使用,但此选项在使用免费帐户时有限制,或者我需要在需要超过 x 个资源后付费。这不是我喜欢的。

有没有办法在不使用 3rd 方服务或在服务器上安装 3rd 方应用程序的情况下更新前端数据?


与上一个问题不同,我很好奇推送消息(以及最终建议的解决方案)是否也适用于移动浏览器。


问题更新: 在 Yeeooow 发表评论后,我注意到我需要提出不同的问题。也许我需要更多地解释我的“问题”并寻求解决方案。

在我的游戏中,玩家可以决定自己的回合何时结束,然后他可以与其他玩家交换一张牌。在这两种情况下,都需要为所有玩家更新数据。我在前端使用 Vue,后端使用 Laravel。满足我的需求的最佳做法是什么?

【问题讨论】:

  • 对于实时游戏,您需要使用网络套接字。 Laravel 内置了广播支持,甚至 Laravel Echo 也有 Javascript 来支持这一点。说 Laravel 不支持这个是无效的。
  • 说到实时应用程序和 Laravel 支持实时更新,没有办法不使用 3rd 可能你可以在这里查看..laracasts.com/discuss/channels/laravel/…
  • 您说“实时更新我的​​前端数据”,但您的游戏听起来(推断)回合制。为什么不直接使用 ajax 或者考虑使用 Vue。无需使事情过于复杂,这两个选项都适用于共享主机。
  • @Yeeooow ,我已经在前端使用 vue,但是当玩家 x 完成轮到时我如何通知其他用户?游戏中还有一个“交易卡”功能,在这种情况下也需要通知玩家。我认为“实时”是这里的最佳选择......我对所有解决方案持开放态度,也对你的解决方案持开放态度
  • @RoDo - 我指的是实时问题,因为您想要实时信息,但游戏听起来是基于转向的,有些人认为(再次推断)游戏本身是实时的(比如FPS,很小但很重要的区别)。我会这样处理它,将游戏视为数据库中的记录(很可能是那个或一组数据点) - 当它的一个人轮到他们时,记录在他们完成时被锁定到他们被锁定到下一个人等等重新卡交易 - 这将是相同的想法,但在不同的桌子上并锁定给可以发起交易的用户等

标签: laravel websocket push-notification web-frontend


【解决方案1】:

您可以将 websockets 与 laravel 一起使用,例如 Ratchet 我已经将它与 laravel 一起使用,但是您不能在共享主机上使用它,因为您需要导入 ZMQ 并打开一些端口,而这在共享主机上不可用,它在 VPS 或专用主机上可用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-06
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 2021-12-02
    • 2020-12-16
    • 2014-09-05
    • 1970-01-01
    相关资源
    最近更新 更多