See also: Push notifications
New in Tiki12: PluginTogether
See dev notes at TogetherJS
Tiki has historically been mostly an asynchronous collaborative tool, except for Live Support and Chat. Since Tiki5, for real-time collaboration, Tiki offers an integration with BigBlueButton (Audio/Video/Screensharing/WhiteBoard/Chat).
This page is to discuss options to make several features realtime:
- Docs (ODF documents via WebODF)
- Wiki
- Drawing (SVG-edit)
- Spreadsheet (jQuery.sheet)
Will be useful along with BigBlueButton collaborative sessions. Ideally for Tiki, it would be the same approach (ex.: library) for all four (and any future) features. And we could take this opportunity to revamp Live Support and Chat (which work OK but are not the most recent technology)
Options
BigBlueButton
One possibility is to go the BigBlueButton route.
Benefits:
- Already integrates with Tiki
- it would be via Shared Notes which is part of Mconf
Drawbacks:
- Add BigBlueButton as a requirement
-
Flash(HTML5 interface has replaced Flash.) - Likely less general interest than a JavaScript solution
Etherpad Lite
Another possibility is integrating with Etherpad Lite
Which uses NodeJS, more info at
- http://www.nodecloud.org
- https://github.com/joyent/node/wiki/Node-Hosting
- https://www.ohloh.net/p/node_js
Benefits:
- Already active project
Drawbacks:
- Adds Etherpad Lite as a requirement
- Overlap with some of Tiki's wiki functionality
- Will it be easy to port to Spreadsheet, Drawing and Docs?
A JavaScript library
Infinote & Jinfinote
Benefits:
Drawbacks:
WebRTC
Potential libraries and approaches
- https://marijnhaverbeke.nl/blog/collaborative-editing-cm.html
- http://blog.karlitschek.de/2013/10/welcome-owncloud-documents.html
- http://codiad.com/
- http://en.wikipedia.org/wiki/Operational_transformation
- http://opencoweb.org/
- http://hyperstruct.net/2007/2/24/xml-sync-islands-let-the-web-sharing-begin/
- http://sharejs.org/
- http://nowjs.com/
- https://github.com/Imaginea/matisse#readme
- http://code.google.com/p/google-mobwrite/
- https://github.com/MouMou/jquery-webrtc
- http://groups.google.com/group/codemirror/browse_thread/thread/b9cc198657fb758f
- Synchroedit: SynchroEdit is a browser-based simultaneous multiuser editor, a form of same-time, different-place groupware. It allows multiple users to edit a single web-based document at the same time, and it continuously synchronizes all changes so that users always have the same version. http://www.synchroedit.com (LGPL & MPL)
- http://cooffice.ntu.edu.sg/cockeditor/
- http://kolab.org/blog/seigo/2015/12/28/collaborative-editing-manticore
- https://research.linagora.com/blog/?p=211
- https://github.com/hhxsv5/php-sse
- https://ckeditor.com/blog/Lessons-learned-from-creating-a-rich-text-editor-with-real-time-collaboration/
Projects similar to BigBlueButton
- Dimdidm (open source version abandoned)
- http://code.google.com/p/openmeetings/ (moved to Apache Foundation)
- https://www.webhuddle.com/
- http://www.jabber.org/
Why
- For realtime note taking (business, classroom,etc.)
- For realtime brainstorming (business, classroom,etc.)
- For realtime document revision (articles, minutes of meeting, protocols, etc.)
- your ideas?
Who
- Marc Laporte
- Régis Barondeau
- you?
When
No set date, but as soon as possible. 2013-08 looked into WebRTC, still moving a bit too much for me - one of those "wait a few months and try again"
Features to be made realtime
Realtime Collaborative Wiki
This is to plan the addition of multiple concurrent editors to the wiki.
Realtime Collaborative Drawing
Same thing for the Draw feature, which is with SVG-edit
- http://code.google.com/p/svg-edit/issues/detail?id=947
- http://thenextweb.com/2009/06/05/experience-worlds-google-wave-svg-editor-gadget/
- http://www.webdistortion.com/2011/01/22/best-online-collaborative-drawing-tools/
- http://noosfero.org/Development/ActionItem2240
Realtime Collaborative Spreadsheet
This is to plan the addition of multiple concurrent editors to the spreadsheet, which is powered by (jQuery.sheet)
Realtime Collaborative Docs
Tiki bundles WebODF as Tiki Docs.
"pilot project to add real-time collaborative editing to WebODF":
http://webodf.org/blog/2012-04-05.html
Related links
- CRDT: https://youtu.be/Exr0iY_D-vw
- https://github.com/y-js/yjs
- React: Event-driven, non-blocking I/O with PHP
- Ratchet: WebSockets for PHP
- https://docs.yjs.dev/ecosystem/connection-provider/y-websocket
- Screencast
- http://en.wikipedia.org/wiki/Category:Web_conferencing
- http://en.wikipedia.org/wiki/Comparison_of_web_conferencing_software
- http://en.wikipedia.org/wiki/Collaborative_real-time_editor#Browser-based
- http://en.wikipedia.org/wiki/Collaborative_real-time_editor#Other_real-time_collaborative_editing_software
- http://webodf.org/blog/2012-04-05.html
- https://github.com/substack/dnode
- http://lucumr.pocoo.org/2012/8/5/stateless-and-proud/
- https://code.google.com/p/jquery-graceful-websocket/
- https://code.google.com/p/diagram-editor-for-google-plus/
- https://github.com/igniterealtime/Pade/issues/73
- http://nikic.github.com/2012/12/22/Cooperative-multitasking-using-coroutines-in-PHP.html
- http://www.slideshare.net/spoutserver/realtime-communication-techniques-with-php
- http://www.firepad.io/
- http://blog.rizzoma.com/2012/11/20/node-js-and-coffeescript-for-online-collaborative-editing/
- http://we-love-php.blogspot.de/2012/10/how-to-implement-chat-server-php-server-sent-events.html.html
- http://en.wikipedia.org/wiki/Gobby
- http://www.emacswiki.org/emacs/CollaborativeEditing
- http://doc.owncloud.org/server/7.0/user_manual/documents.html
- http://operational-transformation.github.io/
- http://infinote.org/
- http://www.leggetter.co.uk/real-time-web-technologies-guide/#_ratchet
- https://we.riseup.net/cgdev/collaborative-editor
- https://anarc.at/blog/2018-06-26-collaborative-editors-history/
- https://github.com/automerge/automerge
OpenHub badges
Not Open source
- Connected to CKEditor5: https://ckeditor.com/collaborative-editing/letters/