3

在网上搜索了一颗好的彗星并问你们我最好的选择是什么之后,我选择了Orbited。问题是,如果您需要一份关于 Comet 的良好文档,您将找不到。我已经安装了 Orbited,它似乎工作得很好。

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

另外,Orbited 可以处理多少用户?

有任何想法吗?

4

3 回答 3

3

您可以添加一个数据库触发器,在数据库发生更改时将消息发送到您的消息队列。这也被建议在这里。或者,如果只是您的应用程序与数据库通信,您可以通过主题/观察者 模式在应用程序内处理此问题,每当有人调用更改数据库中某些内容的操作时通知队列。

我不知道轨道秤的好坏。

于 2009-12-28T08:02:00.090 回答
0

有一个参考表来跟踪源表的最后更新时间。为更新参考表中时间的源表创建更新/删除/插入触发器。

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

抱歉,我对 Orbited 了解不多。

于 2009-12-28T08:34:25.700 回答
0

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

这是一个使用 STOMP 的用例示例,尽管服务器端是用 Ruby 编写的:http: //fuglyatblogging.wordpress.com/2008/10/

我不知道带有 Apache 的 PHP(如果您正在使用的话)是否是监视数据库更改的最佳套件。阅读这篇文章,标题为“Orbited Server”,以获得解释:http ://thingsilearned.com/2009/06/09/starting-out-with-comet-orbited-part-1/

编辑:如果您想通过 Web 服务器使用 PHP 进行路由,您需要向启动监视并推出更改的脚本发出一个请求,并且只有一个请求。如果该脚本超时或失败,您需要启动一个新脚本。有点丑 :) 一个更好、更简洁的方法是,例如,使用 twisted 和 python 来启动一个监控过程,与 Web 服务器完全分离。

于 2009-12-28T08:43:29.397 回答