5

我们希望建立一个实时价格变化系统,以便能够看到竞争对手价格与我们产品价格的差异。

我们没有使用 Javascript 和 PHP 推送通知 / COMET 系统的经验。如果你不介意,我想听听你的经验,关于这项技术的建议。所以这是我的问题:

  • 像那个系统那样做的最好方法是什么?
  • 我们是经验丰富的 PHP 开发人员,那么 PHP 是否适合这项任务?
  • 如果您知道任何能够做到这一点的项目或解决方案(开源或商业),您能分享一下吗?
4

2 回答 2

2
  1. 这是我们使用的方法。Javascript 向 PHP 文件发送常规 AJAX 请求。PHP 文件进行数据库查询,如果发现,只需休眠 0.5 秒(或 1 秒),然后再次进行数据库查询。如果 30 秒过去了,但在数据库中仍然没有发现任何新内容(这是在 HTTP 超时发生之前给出输出所必需的),那么它会输出一些东西(比如发现发现)。Javascript 在收到上一个查询的输出后立即启动另一个查询。Javascript 始终跟踪彗星正在监视的数据库表的最后一个 ID。这用于仅查询大于我们看到的最后一个 ID 的数据库行。
  2. 是的 PHP 是合适的。只记得一件重要的事情!在进入彗星循环之前,您需要关闭所有打开的会话。PHP 使用会话锁定来防止两个线程同时写入同一个会话。如果您忘记关闭会话,所有其他线程都将被锁定(例如无法浏览网站)。
  3. 我可以建议我们使用的开源 PHP 框架。它称为Stingle。它具有可靠且可用于生产的 Comet 插件。
于 2013-01-11T14:52:56.097 回答
1

尝试使用 socket.io ,不需要从客户端向服务器发送请求来获取数据,在服务器端只需使用套接字发送数据,客户端将获取数据。只是避免发出http请求通知,因为通知几乎是实时的。

于 2016-04-04T06:11:39.853 回答