[jdev] Shared Editing with XMPP

Laine Markku markku.laine at aalto.fi
Thu Aug 15 12:55:39 UTC 2013

Dear all,

I am about to start building a real-time collaborative web application using XMPP. I already figured out that in order to use XMPP on the Web one should use either "XEP-0206: XMPP Over BOSH" (http://xmpp.org/extensions/xep-0206.html) or "An XMPP Sub-protocol for WebSocket" (https://tools.ietf.org/html/draft-moffitt-xmpp-over-websocket-03) together with an XMPP client library for JavaScript (e.g, Strophe.js, http://strophe.im/strophejs/) and an XMPP server (e.g., Openfire, http://www.igniterealtime.org/projects/openfire/) supporting them.

What I am still missing is how to keep data in sync between collaborators. I ran into a couple of XEPs dealing with the issue, such as "XEP-0228: Requirements for Shared Editing" (http://xmpp.org/extensions/xep-0228.html), "XEP-0204: Collaborative Data Objects" (http://xmpp.org/extensions/xep-0204.html), and "XEP-0284: Shared XML Editing" (http://xmpp.org/extensions/xep-0284.html). Unfortunately, all of them have been deferred.

Therefore, my question is what would be a recommended way to implement real-time collaborative editing of (XML) documents between XMPP clients? Preferably supporting Operational Transformation (OT, https://en.wikipedia.org/wiki/Operational_transformation).

Thanks in advance!

Ps. Sorry about sending the very same message to a totally wrong mailing list in the first place.

More information about the JDev mailing list