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

时间:2013-01-11 13:21:19

标签: php javascript push comet

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

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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