How do you write a real-time webbased collaboration tool such as google docs?
I'm really curious about
How one would go about writting a collab开发者_开发百科oration tools such as google docs?
The closest thing that I can think of is to write a messaging system like a chat and then send messages back and forth so that each client updates itself.
Do you know of a tutorial / demo where they program a small tool like this?
What tools do they use to do this kind of apps?
TIA for any pointers you can provide.
Google Docs works via operational transformation.
The basic idea of operational transformation is to transform (or adjust) the parameters of an editing operation according to the effects of previously executed concurrent operations so that the transformed operation can achieve the correct effect and maintain document consistency.
Google produced a video about operational transformation for Google Wave; this technology was ported to Google Docs.
As for technology, check out the following links:
- Understanding and Applying Operational Transformation
- Google Wave Operational Transformation
- Real-time Collaborative Editing with Web Sockets, Node.js & Redis
- Operational Transformation library?
- OTpad: Operational Transformations Testing (Etherpad in nodejs)
精彩评论