代码之家  ›  专栏  ›  技术社区  ›  Gareth Simpson

可重放comet风格应用程序的高效存储/检索方法(google wave、etherpad)

  •  3
  • Gareth Simpson  · 技术社区  · 15 年前

    我正在考虑一个web应用程序,它将具有与google wave和etherpad中相同的多用户、自动保存、无限撤销/重放功能(尽管规模和用户基础要小得多)。

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

    我知道这不一定是最好的堆栈溢出问题,因为可能没有一个“正确”的答案,但我的google fu让我失望了,我只想一个阅读列表!

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

    1 回复  |  直到 15 年前
        1
  •  1
  •   martinr    15 年前

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

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

    • 服务器中的oltp和comet即时消息服务器代码

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

    • 客户机内部的in-ram版本控制数据库

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

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

    • 客户端gui中的文本度量

    • (可选)自定义位图字体,用于字体度量不太清楚的浏览器

    • 客户端gui中的二维动画代码 (分批操作以提高响应性-客户 平台是单线程的!)

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

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

    我希望主要的实现关注点是在gui接受和确认插入符号位置更改或从comet(层)接收编辑和文本输入更改之间实现尽可能短的事件序列。