实现推送通知系统的最佳方式

Oğu*_*mir 5 javascript php push comet

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

我们没有使用Javascript和PHP的推送通知/ COMET系统的经验.如果你不介意,我想得到你的经验,对这种技术的建议.所以这是我的问题:

  • 这个系统的最佳方式是什么?
  • 我们是经验丰富的PHP开发人员,因此PHP适合这项任务吗?
  • 如果你知道任何能够做到这一点的项目或解决方案(开源或商业),请你分享一下吗?

Ale*_*yan 2

  1. 这是我们使用的方法。Javascript 向 PHP 文件发送常规 AJAX 请求。PHP 文件进行数据库查询,如果发现找到,则休眠 0.5 秒(或 1 秒),然后再次进行数据库查询。如果 30 秒过去了,在数据库中仍然没有发现任何新内容(这是在 HTTP 超时发生之前提供输出所需要的),那么它会输出一些内容(例如注意到已找到)。JavaScript 在收到上一个查询的输出后立即启动另一个查询。JavaScript 始终跟踪 Comet 正在监控的数据库表的最后一个 ID。这用于仅查询大于我们看到的最后一个 ID 的数据库行。
  2. 是的,PHP 是合适的。只要记住一件重要的事情!在进入 comet 循环之前,您需要关闭所有打开的会话。PHP 使用会话锁定来防止两个线程同时写入同一会话。如果您忘记关闭会话,所有其他线程都将被锁定(就像无法浏览网站一样)。
  3. 我可以为我们使用的开源 PHP 框架提供建议。它叫斯汀格尔。它具有可靠且可用于生产的 Comet 插件。