3

我正在考虑一个 Web 应用程序,它具有与您在 Google Wave 和 Etherpad 中看到的相同类型的多用户、自动保存、无限撤消/重放功能(尽管规模和用户群要小得多)。

在我离开并重新发明轮子之前,这是否已经被视为一项技术或库,甚至只是一种设计模式。

我知道这不一定是最好的 Stack Overflow 问题,因为可能没有“正确”的答案,但我的 Google-fu 让我失望了,我只想要一个阅读清单!

通常我会在 python/django 下开发,但这不是一个严格的要求,只是一个偏好:)

4

1 回答 1

1

听起来像一个真正的技术俱乐部三明治:

  • 服务器中的网页服务以及用户和会话管理服务器代码

  • 服务器中的 OLTP 和 Comet 即时消息服务器代码

  • 服务器中的版本控制冲突解决代码

  • 客户端内部的内存版本控制数据库

  • 客户端中的版本控制冲突解决代码(对传入字节批量操作以提高响应能力 - 客户端平台是单线程的!)

  • 客户端内部的 Comet 即时消息客户端代码(对传入字节批量操作以提高响应能力 - 客户端平台是单线程的!)

  • 客户端 GUI 中的文本测量

  • (可选)为对字体度量了解甚少的浏览器自定义位图字体

  • 客户端 GUI 中的 2D 动画代码(在待绘制列表上批量操作以提高响应能力 - 客户端平台是单线程的!)

  • 客户端页面中的 Web 用户会话管理服务器代码

主要的设计关注点将是网络使用模型的灵活性,以支持在面对无用的代理服务器和连接或带宽限制需求时继续运行。您可能需要能够在相当多的 Comet 信令策略和超时范围套件之间轻松切换,以进行试验,并允许应用程序随着 Comet 在现场的任何限制和问题的减少而轻松增长。

我预计主要的实现问题将是在 GUI 接受和确认插入符号位置更改或从(the)Comet(层)和文本输入更改接收编辑之间实现尽可能短的事件序列。

于 2009-12-18T22:24:17.517 回答