在我自己的系统中,我有一个 PHP
页面,它显示我通过网上商店销售的所有商品,从最近的交易到第一笔交易。
我希望这个页面在人们从我这里购买东西时自动更新。
我可以每 5 秒调用一次 AJAX
来检查我数据库中的订单,但这似乎是 1980 年的事情?
还是人们就是这样做的?
每当我的 php newOrder() 函数(让我们这样调用它)运行时,我如何才能推送通知到我的 php
页面叫什么?
最佳答案
您可以在 PHP 中实现推送,但这不是最有效的解决方案,因为要实现推送,您需要在客户端和服务器(HTTP 或 WebSocket 连接)之间保持长期运行的连接。
参见:
- Long Polling/HTTP Streaming General Questions
- phpwebsocket
- php-websocket on github
- Ratchet
- how to implement comet in PHP - 经常链接到指南
构建实时基础架构时的一般最佳实践是将推送解决方案与您的 Web 应用程序分离(注意:node.js 和 socket.io 对此做了一些改变,但我个人仍然认为它应该分离)。但是,假设后者仍然是您需要编写/托管/安装此推送解决方案的最佳解决方案。解耦还意味着该技术不必是 PHP,但您可以从 PHP 访问/使用它。也许有点矫枉过正?尤其是如果您的网站上没有太多用户?
为简单起见,我建议考虑使用第 3 方托管服务。我在一家名为 Pusher 的公司工作.使用像我们这样的服务可以让您无需安装和维护应用程序的实时部分。它还使添加您正在寻找的推送功能变得非常容易。您需要做的就是向现有应用程序添加几行 PHP 代码以触发推送通知,并向您的前端添加几行 JavaScript。
资源:
如果您想研究替代方案或我上面提到的某些技术,我正在维护一个 list of realtime technologies您可能也感兴趣。
关于php - Ajax 推送系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7594425/