执行推送通知系统的最佳方式


Best way to implement a push notification systems

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

我们没有Javascript和PHP推送通知/COMET系统的经验。如果你不介意的话,我想听听你关于这个技巧的经验和建议。下面是我的问题:

  • 这样做的最好方法是什么?
  • 我们是经验丰富的PHP开发人员,所以PHP适合这个任务吗?
  • 如果你知道任何项目或解决方案(开源或商业),能够做到这一点,你可以分享吗?
  1. 这是我们使用的方法。Javascript向PHP文件发送常规AJAX请求。PHP文件进行数据库查询,如果没有发现,只休眠0.5秒(或1秒),然后再次进行数据库查询。如果30秒过去了,在数据库中仍然没有发现任何新内容(这是在HTTP超时发生之前给出输出所需要的),那么它将输出一些内容(比如没有发现任何内容)。Javascript在收到最后一个查询的输出后立即启动另一个查询。Javascript总是跟踪comet正在监视的数据库表的最后一个ID。这只用于查询大于我们所看到的最后一个ID的数据库行。
  2. 是PHP是合适的。只要记住一件重要的事情!在进入彗星循环之前,您需要关闭所有打开的会话。 PHP使用会话锁定来防止两个线程同时写入同一个会话。如果您忘记关闭会话,所有其他线程将被锁定(如浏览网站将是不可能的)。
  3. 我可以建议我们使用的开源PHP框架。它叫"刺"。它有坚实的和生产准备Comet插件。

尝试使用套接字。IO,不需要从客户端发送请求到服务器端来获取数据,在服务器端只需使用socket发送数据,客户端就会获取数据。只是避免HTTP请求通知,因为通知几乎是实时的。