使用Orbited连接PHP

时间:2009-12-28 01:36:14

标签: php comet stomp orbited

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

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

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

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

您可以添加database trigger,在数据库发生更改时将消息发送到您的消息队列。这是also suggested here。或者,如果只有您的应用程序与数据库通信,您可以通过Subject/Observer pattern在应用程序内处理此问题,并在有人调用操作更改数据库中的内容时通知队列。

我不知道轨道有多好或多坏。

答案 1 :(得分:0)

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

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

抱歉,我对Orbited了解不多。

答案 2 :(得分:0)

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

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

我不知道PHP与Apache(如果你正在使用的)是否是用于监控数据库更改的最佳套件。阅读本文“轨道服务器”一节下的解释:http://thingsilearned.com/2009/06/09/starting-out-with-comet-orbited-part-1/

编辑:如果您想通过Web服务器使用PHP进行路由,则需要创建一个,仅一个,请求启动监视并推送更改的脚本。如果该脚本超时或失败,您需要开始一个新脚本。有点难看:)一个更好,更清洁的方法是,例如,使用twisted with python启动一个监控过程,完全与web服务器分开。