First step for realtime in onlyoffice apps

This commit is contained in:
yflory
2019-01-14 14:01:22 +01:00
parent 41a1148c17
commit efdecd4059
7 changed files with 319 additions and 23 deletions

View File

@@ -15,6 +15,7 @@ define([
'/common/onlyoffice/oocell_base.js',
'/common/onlyoffice/oodoc_base.js',
'/common/onlyoffice/ooslide_base.js',
'/common/outer/worker-channel.js',
'/bower_components/tweetnacl/nacl-fast.min.js',
'/bower_components/file-saver/FileSaver.min.js',
@@ -38,7 +39,8 @@ define([
FileCrypto,
EmptyCell,
EmptyDoc,
EmptySlide)
EmptySlide,
Channel)
{
var saveAs = window.saveAs;
var Nacl = window.nacl;
@@ -83,6 +85,35 @@ define([
return file;
};
var openRtChannel = function (data) {
// XXX
var channel = Hash.createChannelId();
ctx.sframeChan.query('Q_OO_OPENCHANNEL', channel, function (err, obj) {
if (err || (obj && obj.error)) { console.error(err || (obj && obj.error)); }
});
};
var mkChannel = function () {
var msgEv = Util.mkEvent();
var iframe = $('#cp-app-oo-container > iframe')[0].contentWindow;
window.addEventListener('message', function (msg) {
if (msg.source !== iframe) { return; }
msgEv.fire(msg);
});
var postMsg = function (data) {
iframe.postMessage(data, '*');
};
Channel.create(msgEv, postMsg, function (chan) {
APP.chan = chan;
chan.on('CMDFROMOO', function (data) {
console.log('command from oo', data);
setTimeout(function () {
chan.event('RTMSG', 'Pewpewpew');
}, 2000);
});
});
};
var startOO = function (blob, file) {
if (APP.ooconfig) { return void console.error('already started'); }
var url = URL.createObjectURL(blob);
@@ -144,6 +175,7 @@ define([
if (ifr) { ifr.remove(); }
};
APP.docEditor = new DocsAPI.DocEditor("cp-app-oo-placeholder", APP.ooconfig);
mkChannel();
};
var getContent = APP.getContent = function () {