使用服务器推送在复杂页面中进行多用户编辑

cam*_*aca 6 php zend-framework server-push

我正在将Zend Framework用于名为Pricetag的应用程序,我们正在考虑添加对实时多用户编辑的支持.基本上,这个想法是,在每个步骤中,能够与其他在线用户分享您正在编辑的内容(很像Pivotal TrackerTrello).

这是我们所拥有的四个页面中最复杂(以编程方式说)的屏幕截图:

Pricetag Step 2截图

内部HTML并不重要(但是,如果你想要检查它,你可以注册为免费用户),基本上是一些输入和使用javascript添加/删除这些块("可交付成果"和"任务")的能力.

我假设我需要一些方法让服务器通知每个在线客户端页面的变化.我每次更改时都会发出请求(每次更新时右侧的白色块都会更新),但我不确切知道其他用户将如何接收这些信息.

每隔5秒左右轮询服务器似乎非常错误.该网站使用PHP,是否足以做到这一点?我应该与服务器中的单独脚本连接吗?是否已经构建了Zend Framework模块,即使我先向Google询问,我仍然缺少这个模块?

小智 6

试试这个彗星服务器 - http://dklab.ru/lib/dklab_realplexor/

它有PHP和JavaScript API,请参阅沙箱示例 - http://rutwit.ru/realplexor/demo

用perl编写的Comet服务器,源代码和tarball文件可以在这里找到 - http://github.com/DmitryKoterov/dklab_realplexor/tarball/master

看其他技术 -

龙卷风Web服务器.Web服务器在Python上写,它不仅仅是彗星服务器 - 它是一个可以创建彗星服务器的框架.

NginxHttpPushModule:nginx web服务器的简单模块,增加了对Comet的支持.

CometD:使用Ajax Push的可扩展的基于HTTP的事件路由总线.支持许多渠道订阅.

APE:这是构建彗星系统而不是成品的框架.

Stardust - perl中的简单COMET服务器(作者评论 - "我能想象的最简单的COMET服务器").

Orbited:在JavaScript中模拟TCP套接字.