【发布时间】:2013-10-23 21:56:10
【问题描述】:
问题
我开发了一个相当复杂的项目,它使用 PHP 和 Laravel 作为后端。该站点的用户标记可用或不可用以响应呼叫(如在调度中),并且呼叫存储在 MySQL 表中。目前,整个操作在一个共享的 Web 主机上运行,由 Laravel 4 处理站点和传入数据(例如 Twilio 和 Iron.io 推送队列)。
客户希望在其办公室的显示器上显示系统状态 - 一台计算机和电视显示器专门用于此目的。系统需要实时或尽可能接近,显示谁有空以及任何正在进行的呼叫。根本不会有与此方面的用户交互 - 它只是整天坐在那里显示数据。
现在,我只是使用 AJAX 在他们网站上托管的页面上每六秒请求一次 JSON。他们的网络没有意识到这一点,我猜我们的共享托管环境从长远来看可能不会喜欢它。我需要的是某种将数据直接发送到该计算机的方法,并仅在某些内容发生更改且没有任何用户交互客户端的情况下才将其显示在页面上。 这是我正在寻找的流程 -
- 用户更新他们的状态(即可用或不可用),
- Laravel 4 后端接收请求(从使用 POST 数据的三种可能方式之一),将其存储在数据库中,
- 客户端计算机接收此新信息并将其显示在 HTML 表格中
我想到的解决方案
Node.js 安装在客户端计算机上,Socket.io 看起来很有希望接收推送数据。但是,我无法完全拼凑出如何将数据从 PHP Laravel 4 服务器端发送到客户端,只有在发生某些事情时(用户状态发生变化,向系统添加调用)。
我似乎只能在处理诸如聊天室之类的事情的 websockets 上找到信息 - 这更像是“坐等几个小时直到事情发生”处理从 MySQL 提取数据并将其推出的需要。
我还想过在 Heroku 上设置一个 websocket 服务器,然后从那里将数据发送到客户端 - 但是我再次有点卡在如何仅当数据库发生更改时才完成发送数据(即 Laravel接收 POST 数据,然后对其进行处理)。
任何想法将不胜感激。谢谢!
【问题讨论】:
-
我想我可能刚刚找到了适用于这个特定应用程序的解决方案 - Pusher.com。刚刚偶然发现它,它看起来非常有前途。使用 Composer 在共享主机上快速安装,然后对其进行简单的 API 调用。客户端连接到他们的活动 websocket 并接收数据。手指交叉!
-
是的,这看起来很有希望!希望它对于您需要的流量是免费的。
标签: php ajax node.js laravel websocket