2009-12-28 47 views
3

在网络上搜索一个好的Comet并询问你们我最好的选择是什么,我选择了Orbited。问题是如果你需要一个关于彗星的好文档,你不会找到。我已经安装了轨道,它似乎工作得很好。连接PHP与轨道

基本上,我想不断检查数据库,看看是否有新的数据。如果有的话,我想把它推送给我的客户并更新他们的主页,但是我找不到任何好的和清晰的文档来解释如何经常检查数据库并将新信息推送到Orbited然后再推送给客户端。你们是否实现了这个目标?

此外,有多少用户可以进行轨道处理?

任何想法?

+0

AFAIK,Orbited已经通过10K怠速客户的测试。查看[http://cometdaily.com/2008/03/14/comet-gazing-maturity/](http://cometdaily.com/2008/03/14/comet-gazing-maturity/)上的最后一项 - “Michael Carter” – leon 2011-06-25 15:55:37

回答

3

您可以添加一个database trigger,在数据库发生变化时将消息发送到您的消息队列。这是also suggested here。或者,如果只有您的应用程序正在与数据库进行交谈,则可以通过Subject/Observerpattern在应用程序内处理此事件,只要有人调用某个操作来更改数据库中的某些内容,就会通知该队列。

我不知道有轨或无轨有多大。

+0

对于建议使用消息队列。数据库轮询解决方案无法扩展。 – 2010-01-03 17:39:55

0

有一个参考表,用于跟踪源表的上次更新时间。为更新参考表中的时间的源表创建更新/删除/插入触发器。

您的彗星脚本应该随时检查参考表中的任何时间变化。如果发现更改,您可以阅读更新的源表并将数据推送到客户的主页。在循环中检查参考表的速度更快,因为如果没有更改,MySQL将从其缓存中提供结果。

对不起,我不太了解Orbited。

0

我会使用STOMP协议与Orbited进行通信并将数据推送到客户端。只需用PHP找到一个好的STOMP客户端并开始使用。

这里是一个用例STOMP的例子,虽然在服务器端使用Ruby编写: http://fuglyatblogging.wordpress.com/2008/10/

我不知道PHP与Apache(如果这是你使用的是什么)是最好的套件用于监视数据库更改。阅读本文,在“Orbited Server”部分标题下,获取解释:http://thingsilearned.com/2009/06/09/starting-out-with-comet-orbited-part-1/

编辑:如果您想通过Web服务器使用PHP访问路由,则需要创建一个,一个启动监控并推出更改的脚本。如果该脚本超时或失败,则需要启动一个新脚本。有点难看:)例如,一个更好,更干净的方法是,使用python进行扭曲来启动一个监视过程,并完全与网络服务器分离。