[jdev] Shared Editing with XMPP

Kevin Smith kevin at kismith.co.uk
Thu Aug 15 13:50:12 UTC 2013

On Thu, Aug 15, 2013 at 1:55 PM, Laine Markku <markku.laine at aalto.fi> wrote:
> 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).

Swift has a whiteboarding shared document editor based on OT from a
GSoC student last year. It's not been submitted for XEPness yet - the
start of work on that is visible at
https://www.dropbox.com/s/fewo76yu3bnaoxv/xep-whiteboard.xml - it's
high on Remko's list to work on getting this submitted.


More information about the JDev mailing list