【发布时间】:2013-12-31 00:41:37
【问题描述】:
我正在使用 laravel 4 构建一个应用程序,其中包含管理员输入的信息,并且信息显示在另一座建筑物的另一个屏幕上。比如Admin下新订单新客户,生产需要看到当前订单。我一开始是想用的。
setInterval() or setTimeout()
在屏幕的生产侧。有用!!但是,我发现让服务器不断刷新并没有什么好处。我已经搞砸了一些套接字编程,至少我理解的是。虽然,我觉得好像我在错误的地方寻找和研究。有谁知道我如何实现一个将新数据直接推送到视图的实时应用程序。例如。当管理员下订单时......这会触发和事件。该事件将新的数据库内容推送给查看特定视图的任何人? (无需查看者刷新页面。)
这怎么可能?因为我感到迷茫!
- 另请注意:如果它有助于使用本地计算机,它将在公司服务器上运行。
我正在使用 laravel 4 + MAMP + bootstrap
【问题讨论】:
-
当您尝试在客户端和服务器之间建立双向通信时,WebSockets 应该正是您所需要的。所以你需要一些服务器端的 PHP 套接字库和客户端的 JavaScript 库。
-
@Quasdunk 我找到了一个名为brain-socket 的laravel 包。我不太确定这是否是正确的图书馆。它是 Ratchet 的 laravel 实现。但是,你是说我需要一个用于 php 和 javascript 的套接字库吗?
-
@user3095721 是的,BrainSocket 看起来很不错。只要您的应用程序中发生某些事情(例如出现新订单),您就可以触发一个事件,然后由 BrainSocket 处理。所以你在一个打开的套接字上发送一些数据。另一方面,客户端,您需要在套接字上接收数据,然后将其放在屏幕上。因此,您需要在客户端使用 JavaScript 1. 接收数据(使用 WebSockets 库)和 2. 操作 DOM。它很像 Ajax 以及您现在的操作方式,只是您不通过调用 URL 而是通过侦听套接字来检查数据。
-
@user3095721 我刚刚看到还有一个BrainSocket的JavaScript实现,所以两者应该可以很好地协同工作:github.com/BrainBoxLabs/brain-socket-js
标签: mysql jquery laravel websocket laravel-4