带有 Atmosphere 的实时协作编辑器
Real-time collaborative editor with Atmosphere
我想要一个实时协作编辑器(类似于 Google Docs)。我设法实现了这个:https://github.com/Atmosphere/atmosphere/wiki/Getting-Started-with-Meteor,-WebSocket-and-Long-Polling。
现在我可以在两个客户端之间发送文本了。但是我在理解如何管理协作时遇到了一些困难 document/editor。
我读过有关运营转型的内容。那么您如何看待以下设置:
共有三个客户端:
客户A、客户B、客户C
这三个都是通过 websockets 连接的。所有更改都发送到 API(它将是一个完整的 json 对象)。客户端收到 json 对象,并据此获得 /insert/delete/update 内容。此时没有任何内容保存到数据库中。我最简单的方法是,只有客户端 A(他占主导地位)将每次更改(包括来自其他客户端的更改)保存到数据库中。使用此解决方案,我不必在 API 级别实施 OT。如果客户端 A 离开,另一个客户端将占据主导地位并保存到数据库。
我现在唯一的问题是,(在我看来)没有简单的解决方案来处理客户端之间的 OT。
你有什么建议吗?这个解决方案有意义还是完全是废话?
到目前为止我的 Techstack:
Backbone / jQuery
MySQL
Java Servlet / Tomcat 7(Jetty 更适合 WS - 稍后会实现)
如果它适合这个堆栈会很酷;)
最佳
法比安
好的 - 所以我自己解决了它。有一个很棒的项目叫做 webstrate。如果您想实时进行富文本编辑,您真的应该检查一下。
最佳
法比安
我想要一个实时协作编辑器(类似于 Google Docs)。我设法实现了这个:https://github.com/Atmosphere/atmosphere/wiki/Getting-Started-with-Meteor,-WebSocket-and-Long-Polling。
现在我可以在两个客户端之间发送文本了。但是我在理解如何管理协作时遇到了一些困难 document/editor。
我读过有关运营转型的内容。那么您如何看待以下设置:
共有三个客户端: 客户A、客户B、客户C
这三个都是通过 websockets 连接的。所有更改都发送到 API(它将是一个完整的 json 对象)。客户端收到 json 对象,并据此获得 /insert/delete/update 内容。此时没有任何内容保存到数据库中。我最简单的方法是,只有客户端 A(他占主导地位)将每次更改(包括来自其他客户端的更改)保存到数据库中。使用此解决方案,我不必在 API 级别实施 OT。如果客户端 A 离开,另一个客户端将占据主导地位并保存到数据库。
我现在唯一的问题是,(在我看来)没有简单的解决方案来处理客户端之间的 OT。
你有什么建议吗?这个解决方案有意义还是完全是废话?
到目前为止我的 Techstack:
Backbone / jQuery
MySQL
Java Servlet / Tomcat 7(Jetty 更适合 WS - 稍后会实现)
如果它适合这个堆栈会很酷;)
最佳 法比安
好的 - 所以我自己解决了它。有一个很棒的项目叫做 webstrate。如果您想实时进行富文本编辑,您真的应该检查一下。
最佳 法比安