一尘不染

Ajax推送系统

php

在我自己的系统中,我有一个PHP页面,显示从网上交易到最新交易的所有商品。

每当有人从我这里买东西时,我希望此页面自动更新。

我可以AJAX5 秒钟打一次电话来检查数据库中的订单,但这似乎是1980年?还是人们这样做的方式?

每当我的php newOrder() 函数( 让其 调用)被调用时,如何 通知 送到php页面? __


阅读 396

收藏
2020-05-29

共1个答案

一尘不染

您可以在PHP中实现推送,但是它并不是最有效的解决方案,因为要实现推送,您需要在客户端和服务器之间维持长期运行的连接(HTTP或WebSocket连接)。

看到:

  • Long Polling/HTTP Streaming General Questions
  • phpwebsocket
  • php-websocket on github
  • Ratchet
  • how to implement comet in PHP - frequently linked to guide

构建实时基础架构时,一般的最佳实践是将推送解决方案与Web应用程序分离(
注意:node.js和socket.io对此做了些改动,但我个人仍然认为应该将其分离
)。但是,假设后者仍然是最好的解决方案,则需要编写/托管/安装此推送解决方案。解耦还意味着该技术不必是PHP,但您 可以
从PHP访问/使用它。也许有点矫kill过正?尤其是如果您的网站上没有 太多 用户?

为简单起见,我建议您考虑使用第三方托管服务。我在一家名为Pusher的公司工作。使用我们的服务,使您无需安装和维护应用程序实时部分。它还使添加所需功能变得非常容易。您所需要做的就是在现有应用程序中添加几行PHP代码以触发推送通知,并在前端中添加几行JavaScript。

资源:

如果您想研究上面提到的替代技术或某些技术,我会列出您可能也感兴趣的实时技术

2020-05-29