这不是一个简单实用的问题,而是一个促进实时数据交换主题讨论的问题。
我将从一个例子开始:
Google Wave 的核心是实时异步数据同步引擎。Wave 支持(或计划支持)并发(实时)文档协作、断开连接(离线)文档编辑、冲突解决、文档历史记录和带归属地回放以及服务器联合。
Wave 的核心部分是 Operational Transformation 引擎:http ://www.waveprotocol.org/whitepapers/operational-transform
OT 引擎管理文档状态。客户端之间的更改被合并,并且每个客户端始终对文档有一个理智和一致的视图;最终文档在所有连接的客户端之间最终是一致的。
我的问题是:这个系统是否足够抽象或通用,可以用作库或通用框架来构建在每个客户端中同步实时、异步状态的 Web 应用程序?
Wave 协议是否被当前的任何 Web 应用程序(除了 Google 的客户端)直接使用?直接将它用于 Web 应用程序中的通用状态同步是否有意义?
在构建这样的 Web 应用程序时,您会考虑使用哪些其他现有库或框架?
这样的应用程序中有多少代码可能是特定于域的逻辑与通用状态同步逻辑?或者,换一种说法,状态同步抽象有多大的漏洞?
欢迎评论和讨论!